{ "openapi": "3.1.0", "info": { "title": "Arcadia Studio model API", "version": "1.0.0", "description": "Current schema-3 snapshots and conditional atomic writes. Request body limit: 8 MiB; at most 200 nested commands; no retained revisions, request receipts, automatic retries or persistent transition plans. See docs/api.rst. Fixed store capacity: 128 models / 256 MiB serialized envelopes. Stateless transition preview/apply. Artifact URI/revision strings remain opaque core fields. Model admission before structural validation: 5,000 graph objects, 20,000 total records and 50,000 ordered references. Preparation uses snapshots outside the catalog lock; final commits recheck the exact ETag." }, "servers": [ { "url": "http://127.0.0.1:8787" } ], "security": [ { "bearerAuth": [] } ], "paths": { "/health": { "get": { "operationId": "_health", "summary": "Store was opened and HTTP service is responding", "parameters": [], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "const": "ok" } }, "required": [ "status" ], "additionalProperties": false } } } }, "default": { "$ref": "#/components/responses/Problem" } }, "security": [] } }, "/health/live": { "get": { "operationId": "_health_live", "summary": "Store was opened and HTTP service is responding", "parameters": [], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "const": "ok" } }, "required": [ "status" ], "additionalProperties": false } } } }, "default": { "$ref": "#/components/responses/Problem" } }, "security": [] } }, "/health/ready": { "get": { "operationId": "_health_ready", "summary": "Store was opened and HTTP service is responding", "parameters": [], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "const": "ok" } }, "required": [ "status" ], "additionalProperties": false } } } }, "default": { "$ref": "#/components/responses/Problem" } }, "security": [] } }, "/openapi.json": { "get": { "operationId": "_openapi_json", "summary": "OpenAPI contract", "parameters": [], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "type": "object" } } } }, "default": { "$ref": "#/components/responses/Problem" } }, "security": [] } }, "/api/v1/openapi.json": { "get": { "operationId": "_api_v1_openapi_json", "summary": "OpenAPI contract", "parameters": [], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "type": "object" } } } }, "default": { "$ref": "#/components/responses/Problem" } }, "security": [] } }, "/api/v1/projects": { "get": { "operationId": "listProjects", "summary": "List current hosted projects in UUID order", "parameters": [ { "name": "limit", "in": "query", "required": false, "description": "", "schema": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 100 } }, { "name": "after", "in": "query", "required": false, "description": "", "schema": { "type": "string", "format": "uuid" } }, { "name": "q", "in": "query", "required": false, "description": "", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectPage" } } } }, "default": { "$ref": "#/components/responses/Problem" } } }, "post": { "operationId": "createProject", "summary": "Create and persist an empty model", "parameters": [], "responses": { "201": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectSummary" } } } }, "default": { "$ref": "#/components/responses/Problem" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NameRequest" } } } } } }, "/api/v1/projects/import": { "post": { "operationId": "importProject", "summary": "Import JSON or UTF-8 Arcadia source as a new hosted resource", "parameters": [], "responses": { "201": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectSummary" } } } }, "default": { "$ref": "#/components/responses/Problem" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Project" } }, "text/plain": { "schema": { "type": "string" } } } }, "description": "Schema-3 native JSON is described below. Schema-1 and schema-2 JSON/source are accepted through explicit frozen readers and migration, also on replacement and candidate validation. Reports list preserved Legacy contracts, generated FE endpoint IDs/aliases and boundary orientation defaults. Export emits schema 3 / arcadia 3. See docs/language.rst." } }, "/api/v1/projects/{id}": { "get": { "operationId": "getProject", "summary": "Get complete current envelope", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "If-None-Match", "in": "header", "required": false, "description": "Return 304 when the current representation's revision matches.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StoredProject" } } } }, "304": { "description": "Unchanged; empty body." }, "default": { "$ref": "#/components/responses/Problem" } } }, "patch": { "operationId": "renameProject", "summary": "Rename the project atomically", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "If-Match", "in": "header", "required": true, "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MutationResult" } } } }, "412": { "$ref": "#/components/responses/Problem" }, "428": { "$ref": "#/components/responses/Problem" }, "default": { "$ref": "#/components/responses/Problem" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NameRequest" } } } } }, "delete": { "operationId": "deleteProject", "summary": "Permanently delete the current hosted envelope", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "If-Match", "in": "header", "required": true, "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", "schema": { "type": "string" } } ], "responses": { "204": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } } }, "412": { "$ref": "#/components/responses/Problem" }, "428": { "$ref": "#/components/responses/Problem" }, "default": { "$ref": "#/components/responses/Problem" } } } }, "/api/v1/projects/{id}/model": { "get": { "operationId": "getModel", "summary": "Export native model JSON", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "If-None-Match", "in": "header", "required": false, "description": "Return 304 when the current representation's revision matches.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Project" } } } }, "304": { "description": "Unchanged; empty body." }, "default": { "$ref": "#/components/responses/Problem" } } }, "put": { "operationId": "replaceModel", "summary": "Conditionally replace model JSON", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "If-Match", "in": "header", "required": true, "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MutationResult" } } } }, "412": { "$ref": "#/components/responses/Problem" }, "428": { "$ref": "#/components/responses/Problem" }, "default": { "$ref": "#/components/responses/Problem" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Project" } } } } } }, "/api/v1/projects/{id}/source": { "get": { "operationId": "getSource", "summary": "Export canonical Arcadia source", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "If-None-Match", "in": "header", "required": false, "description": "Return 304 when the current representation's revision matches.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "text/plain": { "schema": { "type": "string" } } } }, "304": { "description": "Unchanged; empty body." }, "default": { "$ref": "#/components/responses/Problem" } } }, "put": { "operationId": "replaceSource", "summary": "Conditionally replace from UTF-8 Arcadia source", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "If-Match", "in": "header", "required": true, "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MutationResult" } } } }, "412": { "$ref": "#/components/responses/Problem" }, "428": { "$ref": "#/components/responses/Problem" }, "default": { "$ref": "#/components/responses/Problem" } }, "requestBody": { "required": true, "content": { "text/plain": { "schema": { "type": "string" } } } } } }, "/api/v1/projects/{id}/elements": { "get": { "operationId": "listElements", "summary": "Filter current elements; AND semantics", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "limit", "in": "query", "required": false, "description": "", "schema": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 100 } }, { "name": "after", "in": "query", "required": false, "description": "", "schema": { "type": "string", "format": "uuid" } }, { "name": "revision", "in": "query", "required": false, "description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.", "schema": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." } }, { "name": "kind", "in": "query", "required": false, "description": "", "schema": { "$ref": "#/components/schemas/Kind" } }, { "name": "layer", "in": "query", "required": false, "description": "", "schema": { "$ref": "#/components/schemas/Layer" } }, { "name": "alias", "in": "query", "required": false, "description": "", "schema": { "type": "string" } }, { "name": "q", "in": "query", "required": false, "description": "", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ElementPage" } } } }, "default": { "$ref": "#/components/responses/Problem" } } } }, "/api/v1/projects/{id}/relations": { "get": { "operationId": "listRelations", "summary": "Filter relations by typed kind and endpoints", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "limit", "in": "query", "required": false, "description": "", "schema": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 100 } }, { "name": "after", "in": "query", "required": false, "description": "", "schema": { "type": "string", "format": "uuid" } }, { "name": "revision", "in": "query", "required": false, "description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.", "schema": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." } }, { "name": "kind", "in": "query", "required": false, "description": "", "schema": { "$ref": "#/components/schemas/RelationKind" } }, { "name": "source", "in": "query", "required": false, "description": "", "schema": { "type": "string", "format": "uuid" } }, { "name": "target", "in": "query", "required": false, "description": "", "schema": { "type": "string", "format": "uuid" } }, { "name": "incident_to", "in": "query", "required": false, "description": "", "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RelationPage" } } } }, "default": { "$ref": "#/components/responses/Problem" } } } }, "/api/v1/projects/{id}/artifact-links": { "get": { "operationId": "listArtifacts", "summary": "List model artifact links without fetching URIs", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "limit", "in": "query", "required": false, "description": "", "schema": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 100 } }, { "name": "after", "in": "query", "required": false, "description": "", "schema": { "type": "string", "format": "uuid" } }, { "name": "revision", "in": "query", "required": false, "description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.", "schema": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." } }, { "name": "object", "in": "query", "required": false, "description": "Owner ID.", "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ArtifactPage" } } } }, "default": { "$ref": "#/components/responses/Problem" } } } }, "/api/v1/projects/{id}/traces": { "get": { "operationId": "listTraces", "summary": "List OA/SA traces", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "limit", "in": "query", "required": false, "description": "", "schema": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 100 } }, { "name": "after", "in": "query", "required": false, "description": "", "schema": { "type": "string", "format": "uuid" } }, { "name": "revision", "in": "query", "required": false, "description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.", "schema": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." } }, { "name": "object", "in": "query", "required": false, "description": "OA or SA endpoint ID.", "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TracePage" } } } }, "default": { "$ref": "#/components/responses/Problem" } } } }, "/api/v1/projects/{id}/query": { "post": { "operationId": "queryNeighborhood", "summary": "Bounded graph neighborhood including relation endpoint closure", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NeighborhoodResult" } } } }, "default": { "$ref": "#/components/responses/Problem" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NeighborhoodRequest" } } } } } }, "/api/v1/projects/{id}/validation": { "get": { "operationId": "validateCurrent", "summary": "Shared core validation of current snapshot", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationResult" } } } }, "default": { "$ref": "#/components/responses/Problem" } } }, "post": { "operationId": "validateCandidate", "summary": "Check submitted model/source without mutation", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationResult" } } } }, "default": { "$ref": "#/components/responses/Problem" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationRequest" } } } } } }, "/api/v1/projects/{id}/transactions": { "post": { "operationId": "executeTransaction", "summary": "Atomic shared typed commands; optional dry run", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "If-Match", "in": "header", "required": true, "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "headers": { "ETag": { "schema": { "type": "string" }, "description": "Project revision validator when scoped to a project." }, "X-Request-ID": { "schema": { "type": "string", "format": "uuid" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransactionResult" } } } }, "412": { "$ref": "#/components/responses/Problem" }, "428": { "$ref": "#/components/responses/Problem" }, "default": { "$ref": "#/components/responses/Problem" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransactionRequest" } } } } } }, "/api/v1/projects/{id}/transitions/preview": { "post": { "operationId": "previewTransition", "summary": "Preview a shared core transition without persisting a plan", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "If-Match", "in": "header", "required": true, "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Validated result; preview may include unresolved conflicts.", "headers": { "ETag": { "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransitionEnvelope" } } } }, "412": { "$ref": "#/components/responses/Problem" }, "428": { "$ref": "#/components/responses/Problem" }, "default": { "$ref": "#/components/responses/Problem" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransitionRequest" } } } } } }, "/api/v1/projects/{id}/transitions/apply": { "post": { "operationId": "applyTransition", "summary": "Apply client-held transition plan against its original revision", "parameters": [ { "name": "id", "in": "path", "required": true, "description": "Hosted resource UUID; distinct from editable model ID.", "schema": { "type": "string", "format": "uuid" } }, { "name": "If-Match", "in": "header", "required": true, "description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Validated result; preview may include unresolved conflicts.", "headers": { "ETag": { "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MutationResult" } } } }, "412": { "$ref": "#/components/responses/Problem" }, "428": { "$ref": "#/components/responses/Problem" }, "default": { "$ref": "#/components/responses/Problem" } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransitionEnvelope" } } } } } } }, "components": { "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer", "description": "Optional for unconfigured loopback; required on non-loopback." } }, "responses": { "Problem": { "description": "Structured problem response. See code/detail and docs/api.rst status mapping.", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/Problem" } } } } }, "schemas": { "Id": { "type": "string", "format": "uuid" }, "Revision": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." }, "Layer": { "type": "string", "enum": [ "Oa", "Sa" ] }, "Kind": { "type": "string", "enum": [ "Entity", "Actor", "Role", "Activity", "Capability", "OperationalMission", "Process", "System", "SystemActor", "Function", "SystemCapability", "Mission", "FunctionalChain", "ExchangeItem", "DataType", "DataField", "Interface", "Port", "Scenario", "Lifeline", "Occurrence", "StateMachine", "Region", "State", "Mode", "Initial", "Final", "Choice", "Junction", "Fork", "Join", "ShallowHistory", "DeepHistory", "EntryPoint", "ExitPoint", "Terminate", "Event", "Constraint" ] }, "RelationKind": { "type": "string", "enum": [ "Allocation", "Interaction", "CapabilityInvolvement", "ChainInvolvement", "RoleRealization", "RoleAssignment", "FunctionalExchange", "BoundaryExchange", "MissionCapability", "StateTransition", "Availability", "ExchangeAllocation", "InterfaceProvision", "InterfaceRequirement", "StateAction", "CapabilityInclude", "CapabilityExtend", "CapabilityGeneralization", "MissionInvolvement", "SequenceLink", "PortAllocation" ] }, "Position": { "type": "object", "properties": { "x": { "type": "number", "minimum": -1000000, "maximum": 1000000 }, "y": { "type": "number", "minimum": -1000000, "maximum": 1000000 } }, "required": [ "x", "y" ], "additionalProperties": false }, "Size": { "type": "object", "properties": { "width": { "type": "number", "exclusiveMinimum": 0 }, "height": { "type": "number", "exclusiveMinimum": 0 } }, "required": [ "width", "height" ], "additionalProperties": false }, "DataTypeDefinition": { "oneOf": [ { "type": "string", "enum": [ "Boolean", "Integer", "Real", "String", "Record" ] }, { "oneOf": [ { "type": "object", "properties": { "Enumeration": { "type": "object", "properties": { "literals": { "type": "array", "items": { "type": "string" } } }, "required": [ "literals" ], "additionalProperties": false } }, "required": [ "Enumeration" ], "additionalProperties": false } ] } ] }, "TypeRef": { "oneOf": [ { "type": "string", "enum": [ "Boolean", "Integer", "Real", "String" ] }, { "oneOf": [ { "type": "object", "properties": { "Named": { "type": "string", "format": "uuid" } }, "required": [ "Named" ], "additionalProperties": false } ] } ] }, "OccurrenceBody": { "oneOf": [ { "type": "object", "properties": { "Exchange": { "type": "object", "properties": { "exchange": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] }, "sender": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] }, "receiver": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] }, "message_kind": { "$ref": "#/components/schemas/MessageKind", "default": "Asynchronous" }, "reply_to": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "default": null }, "values": { "type": "array", "items": { "$ref": "#/components/schemas/MessageValue" }, "default": [] } }, "required": [ "exchange", "sender", "receiver" ], "additionalProperties": false, "description": "Missing new message fields use schema-2 compatibility defaults; canonical output makes these fields explicit." } }, "required": [ "Exchange" ], "additionalProperties": false }, { "type": "object", "properties": { "Action": { "type": "object", "properties": { "action": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] }, "lifeline": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] } }, "required": [ "action", "lifeline" ], "additionalProperties": false } }, "required": [ "Action" ], "additionalProperties": false }, { "type": "object", "properties": { "State": { "type": "object", "properties": { "state": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] }, "lifeline": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] } }, "required": [ "state", "lifeline" ], "additionalProperties": false } }, "required": [ "State" ], "additionalProperties": false }, { "type": "object", "properties": { "Fragment": { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "Alternative", "Parallel", "Loop", "Optional" ] }, "branches": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "operator", "branches" ], "additionalProperties": false } }, "required": [ "Fragment" ], "additionalProperties": false }, { "type": "object", "properties": { "Branch": { "type": "object", "properties": { "guard": { "type": "string" }, "occurrences": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "guard", "occurrences" ], "additionalProperties": false } }, "required": [ "Branch" ], "additionalProperties": false }, { "type": "object", "properties": { "Control": { "type": "object", "properties": { "kind": { "$ref": "#/components/schemas/ControlKind" } }, "required": [ "kind" ], "additionalProperties": false } }, "required": [ "Control" ], "additionalProperties": false }, { "type": "object", "properties": { "SequenceReference": { "type": "object", "properties": { "sequence": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] } }, "required": [ "sequence" ], "additionalProperties": false } }, "required": [ "SequenceReference" ], "additionalProperties": false }, { "type": "object", "properties": { "ScenarioUse": { "type": "object", "properties": { "scenario": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] }, "bindings": { "type": "array", "items": { "$ref": "#/components/schemas/LifelineBinding" } } }, "required": [ "scenario", "bindings" ], "additionalProperties": false } }, "required": [ "ScenarioUse" ], "additionalProperties": false } ] }, "SharedBody": { "oneOf": [ { "type": "string", "enum": [ "StateMachine", "Region" ] }, { "oneOf": [ { "type": "object", "properties": { "ExchangeItem": { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "Information", "Material", "Energy", "Event" ] } }, "required": [ "kind" ], "additionalProperties": false } }, "required": [ "ExchangeItem" ], "additionalProperties": false }, { "type": "object", "properties": { "DataType": { "type": "object", "properties": { "definition": { "$ref": "#/components/schemas/DataTypeDefinition" } }, "required": [ "definition" ], "additionalProperties": false } }, "required": [ "DataType" ], "additionalProperties": false }, { "type": "object", "properties": { "DataField": { "type": "object", "properties": { "type_ref": { "$ref": "#/components/schemas/TypeRef" }, "minimum": { "type": "integer", "minimum": 0 }, "maximum": { "anyOf": [ { "type": "integer", "minimum": 0 }, { "type": "null" } ] }, "unit": { "type": "string" } }, "required": [ "type_ref", "minimum", "maximum", "unit" ], "additionalProperties": false } }, "required": [ "DataField" ], "additionalProperties": false }, { "type": "object", "properties": { "Interface": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "items" ], "additionalProperties": false } }, "required": [ "Interface" ], "additionalProperties": false }, { "type": "object", "properties": { "Port": { "type": "object", "properties": { "contract": { "$ref": "#/components/schemas/PortContract" }, "legacy": { "anyOf": [ { "$ref": "#/components/schemas/LegacyPortContract" }, { "type": "null" } ] } }, "required": [ "contract", "legacy" ], "additionalProperties": false } }, "required": [ "Port" ], "additionalProperties": false }, { "type": "object", "properties": { "Scenario": { "type": "object", "properties": { "context": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] }, "precondition": { "type": "string" }, "postcondition": { "type": "string" }, "steps": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "viewpoint": { "$ref": "#/components/schemas/ScenarioViewpoint", "default": "MixedLegacy", "description": "Omitted schema-2 viewpoint retains legacy mixed lifelines. New graphical factories select OperationalActivity or Functional explicitly." } }, "required": [ "context", "precondition", "postcondition", "steps" ], "additionalProperties": false } }, "required": [ "Scenario" ], "additionalProperties": false }, { "type": "object", "properties": { "Lifeline": { "type": "object", "properties": { "represented": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] } }, "required": [ "represented" ], "additionalProperties": false } }, "required": [ "Lifeline" ], "additionalProperties": false }, { "type": "object", "properties": { "Occurrence": { "type": "object", "properties": { "body": { "$ref": "#/components/schemas/OccurrenceBody" }, "precondition": { "type": "string" }, "postcondition": { "type": "string" } }, "required": [ "body", "precondition", "postcondition" ], "additionalProperties": false } }, "required": [ "Occurrence" ], "additionalProperties": false }, { "type": "object", "properties": { "State": { "type": "object", "properties": { "kind": { "$ref": "#/components/schemas/StateKind" }, "entry": { "type": "string" }, "exit": { "type": "string" }, "do_activity": { "type": "string" } }, "required": [ "kind", "entry", "exit", "do_activity" ], "additionalProperties": false } }, "required": [ "State" ], "additionalProperties": false }, { "type": "object", "properties": { "Constraint": { "type": "object", "properties": { "expression": { "type": "string" }, "constrained": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "expression", "constrained" ], "additionalProperties": false } }, "required": [ "Constraint" ], "additionalProperties": false }, { "type": "object", "properties": { "Event": { "type": "object", "properties": { "body": { "$ref": "#/components/schemas/EventBody" } }, "required": [ "body" ], "additionalProperties": false } }, "required": [ "Event" ], "additionalProperties": false } ] } ] }, "OaBody": { "oneOf": [ { "type": "string", "enum": [ "Entity", "Actor", "Role", "Activity", "Capability", "Mission" ] }, { "oneOf": [ { "type": "object", "properties": { "Process": { "type": "object", "properties": { "steps": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "steps" ], "additionalProperties": false } }, "required": [ "Process" ], "additionalProperties": false }, { "type": "object", "properties": { "Shared": { "$ref": "#/components/schemas/SharedBody" } }, "required": [ "Shared" ], "additionalProperties": false } ] } ] }, "SaBody": { "oneOf": [ { "type": "string", "enum": [ "System", "Actor", "Function", "Capability", "Mission" ] }, { "oneOf": [ { "type": "object", "properties": { "FunctionalChain": { "type": "object", "properties": { "steps": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "steps" ], "additionalProperties": false } }, "required": [ "FunctionalChain" ], "additionalProperties": false }, { "type": "object", "properties": { "Shared": { "$ref": "#/components/schemas/SharedBody" } }, "required": [ "Shared" ], "additionalProperties": false } ] } ] }, "ElementBody": { "oneOf": [ { "type": "object", "properties": { "Oa": { "$ref": "#/components/schemas/OaBody" } }, "required": [ "Oa" ], "additionalProperties": false }, { "type": "object", "properties": { "Sa": { "$ref": "#/components/schemas/SaBody" } }, "required": [ "Sa" ], "additionalProperties": false } ] }, "Element": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "alias": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", "description": "Unique persistent alias; core reserved words are forbidden." }, "name": { "type": "string" }, "description": { "type": "string" }, "parent": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] }, "body": { "$ref": "#/components/schemas/ElementBody" } }, "required": [ "id", "alias", "name", "description", "parent", "body" ], "additionalProperties": false }, "RelationBody": { "oneOf": [ { "type": "object", "properties": { "Allocation": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "Allocation" ], "additionalProperties": false }, { "type": "object", "properties": { "CapabilityInvolvement": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "CapabilityInvolvement" ], "additionalProperties": false }, { "type": "object", "properties": { "ChainInvolvement": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "ChainInvolvement" ], "additionalProperties": false }, { "type": "object", "properties": { "RoleRealization": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "RoleRealization" ], "additionalProperties": false }, { "type": "object", "properties": { "RoleAssignment": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "RoleAssignment" ], "additionalProperties": false }, { "type": "object", "properties": { "MissionCapability": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "MissionCapability" ], "additionalProperties": false }, { "type": "object", "properties": { "Availability": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "Availability" ], "additionalProperties": false }, { "type": "object", "properties": { "ExchangeAllocation": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "ExchangeAllocation" ], "additionalProperties": false }, { "type": "object", "properties": { "InterfaceProvision": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "InterfaceProvision" ], "additionalProperties": false }, { "type": "object", "properties": { "InterfaceRequirement": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "InterfaceRequirement" ], "additionalProperties": false }, { "type": "object", "properties": { "Interaction": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" }, "items": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "source", "target", "items" ], "additionalProperties": false } }, "required": [ "Interaction" ], "additionalProperties": false }, { "type": "object", "properties": { "BoundaryExchange": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" }, "items": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "oriented": { "type": "boolean", "description": "Independent of component port kind/orientation. Old V2 exchanges migrate to true." } }, "required": [ "source", "target", "items", "oriented" ], "additionalProperties": false } }, "required": [ "BoundaryExchange" ], "additionalProperties": false }, { "type": "object", "properties": { "FunctionalExchange": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" }, "source_port": { "type": "string", "format": "uuid" }, "target_port": { "type": "string", "format": "uuid" }, "items": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "source", "target", "source_port", "target_port", "items" ], "additionalProperties": false } }, "required": [ "FunctionalExchange" ], "additionalProperties": false }, { "type": "object", "properties": { "StateTransition": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" }, "trigger": { "type": "string" }, "guard": { "type": "string" }, "effect": { "type": "string" }, "transition_kind": { "$ref": "#/components/schemas/TransitionKind", "default": "External", "description": "Omitted legacy schema-2 value is External." }, "triggers": { "type": "array", "items": { "$ref": "#/components/schemas/Id" }, "uniqueItems": true, "description": "Same-layer Event or Activity/Function references; alternatives, not implicit conjunction.", "default": [] }, "effects": { "type": "array", "items": { "$ref": "#/components/schemas/Id" }, "uniqueItems": true, "description": "Same-layer Activity/Function references describing transition effects.", "default": [] } }, "required": [ "source", "target", "trigger", "guard", "effect" ], "additionalProperties": false, "description": "Existing trigger, guard and effect prose is preserved exactly. New typed properties are optional only for staged schema-2 compatibility. Removing the last typed trigger retains a descriptive unresolved-trigger placeholder instead of silently introducing completion semantics." } }, "required": [ "StateTransition" ], "additionalProperties": false }, { "type": "object", "properties": { "StateAction": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" }, "phase": { "type": "string", "enum": [ "Entry", "Do", "Exit" ] } }, "required": [ "source", "target", "phase" ], "additionalProperties": false } }, "required": [ "StateAction" ], "additionalProperties": false }, { "type": "object", "properties": { "CapabilityInclude": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "CapabilityInclude" ], "additionalProperties": false }, { "type": "object", "properties": { "CapabilityExtend": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" }, "condition": { "type": "string", "description": "Engineering condition under which the extending capability adds behavior." } }, "required": [ "source", "target", "condition" ], "additionalProperties": false } }, "required": [ "CapabilityExtend" ], "additionalProperties": false }, { "type": "object", "properties": { "CapabilityGeneralization": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "CapabilityGeneralization" ], "additionalProperties": false }, { "type": "object", "properties": { "MissionInvolvement": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "MissionInvolvement" ], "additionalProperties": false }, { "type": "object", "properties": { "SequenceLink": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" }, "guard": { "type": "string", "description": "Condition for a contextual process/chain path. Choice and loop paths should use explicit conditions or else." } }, "required": [ "source", "target", "guard" ], "additionalProperties": false } }, "required": [ "SequenceLink" ], "additionalProperties": false }, { "type": "object", "properties": { "PortAllocation": { "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "target": { "type": "string", "format": "uuid" } }, "required": [ "source", "target" ], "additionalProperties": false } }, "required": [ "PortAllocation" ], "additionalProperties": false } ] }, "Relation": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "alias": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", "description": "Unique persistent alias; core reserved words are forbidden." }, "name": { "type": "string" }, "description": { "type": "string" }, "body": { "$ref": "#/components/schemas/RelationBody" } }, "required": [ "id", "alias", "name", "description", "body" ], "additionalProperties": false }, "NodePlacement": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "alias": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", "description": "Unique persistent alias; core reserved words are forbidden." }, "element": { "type": "string", "format": "uuid" }, "position": { "$ref": "#/components/schemas/Position" }, "size": { "$ref": "#/components/schemas/Size" }, "collapsed": { "type": "boolean" } }, "required": [ "id", "alias", "element", "position", "size", "collapsed" ], "additionalProperties": false }, "Diagram": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "alias": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", "description": "Unique persistent alias; core reserved words are forbidden." }, "name": { "type": "string" }, "description": { "type": "string" }, "layer": { "$ref": "#/components/schemas/Layer" }, "projection": { "type": "string", "enum": [ "FunctionalDataflow", "Capabilities", "Overview", "Decomposition", "Allocation", "Traceability" ] }, "nodes": { "type": "object", "propertyNames": { "format": "uuid" }, "additionalProperties": { "$ref": "#/components/schemas/NodePlacement" } } }, "required": [ "id", "alias", "name", "description", "layer", "projection", "nodes" ], "additionalProperties": false }, "ArtifactLink": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "alias": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", "description": "Unique persistent alias; core reserved words are forbidden." }, "name": { "type": "string" }, "description": { "type": "string" }, "owner": { "type": "string", "format": "uuid" }, "relation": { "type": "string", "enum": [ "References", "Satisfies", "Verifies", "Implements", "DerivedFrom" ] }, "uri": { "type": "string", "description": "Opaque external artifact reference. Server never fetches or executes it." }, "revision": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "fragment": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": [ "id", "alias", "name", "description", "owner", "relation", "uri", "revision", "fragment" ], "additionalProperties": false }, "TracedProperties": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" } }, "required": [ "name", "description" ], "additionalProperties": false }, "TraceBaseline": { "type": "object", "properties": { "oa": { "$ref": "#/components/schemas/TracedProperties" }, "sa": { "$ref": "#/components/schemas/TracedProperties" } }, "required": [ "oa", "sa" ], "additionalProperties": false }, "Trace": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "alias": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", "description": "Unique persistent alias; core reserved words are forbidden." }, "name": { "type": "string" }, "description": { "type": "string" }, "oa": { "type": "string", "format": "uuid" }, "sa": { "type": "string", "format": "uuid" }, "kind": { "type": "string", "enum": [ "Refinement", "Participant", "Capability", "Mission", "Exchange", "Sequence", "Item", "Scenario", "State", "Manual" ] }, "baseline": { "anyOf": [ { "$ref": "#/components/schemas/TraceBaseline" }, { "type": "null" } ] } }, "required": [ "id", "alias", "name", "description", "oa", "sa", "kind", "baseline" ], "additionalProperties": false }, "Project": { "type": "object", "properties": { "schema_version": { "type": "integer", "const": 3 }, "id": { "type": "string", "format": "uuid" }, "alias": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", "description": "Unique persistent alias; core reserved words are forbidden." }, "name": { "type": "string" }, "description": { "type": "string" }, "elements": { "type": "object", "propertyNames": { "format": "uuid" }, "additionalProperties": { "$ref": "#/components/schemas/Element" } }, "relations": { "type": "object", "propertyNames": { "format": "uuid" }, "additionalProperties": { "$ref": "#/components/schemas/Relation" } }, "diagrams": { "type": "object", "propertyNames": { "format": "uuid" }, "additionalProperties": { "$ref": "#/components/schemas/Diagram" } }, "artifact_links": { "type": "object", "propertyNames": { "format": "uuid" }, "additionalProperties": { "$ref": "#/components/schemas/ArtifactLink" } }, "traces": { "type": "object", "propertyNames": { "format": "uuid" }, "additionalProperties": { "$ref": "#/components/schemas/Trace" } } }, "required": [ "schema_version", "id", "alias", "name", "description", "elements", "relations", "diagrams", "artifact_links", "traces" ], "additionalProperties": false }, "StoredProject": { "type": "object", "properties": { "resource_id": { "type": "string", "format": "uuid" }, "revision": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." }, "model": { "$ref": "#/components/schemas/Project" }, "migration": { "anyOf": [ { "$ref": "#/components/schemas/MigrationReport" }, { "type": "null" } ], "description": "Present after legacy import/reopen; excluded from persisted envelopes. Resource identity and revision are unchanged by reopening." } }, "required": [ "resource_id", "revision", "model" ], "additionalProperties": false }, "ProjectSummary": { "type": "object", "properties": { "resource_id": { "type": "string", "format": "uuid" }, "revision": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." }, "model_id": { "type": "string", "format": "uuid" }, "schema_version": { "type": "integer" }, "name": { "type": "string" }, "elements": { "type": "integer", "minimum": 0 }, "relations": { "type": "integer", "minimum": 0 }, "migration": { "anyOf": [ { "$ref": "#/components/schemas/MigrationReport" }, { "type": "null" } ] } }, "required": [ "resource_id", "revision", "model_id", "schema_version", "name", "elements", "relations" ], "additionalProperties": false }, "Issue": { "type": "object", "properties": { "severity": { "type": "string", "enum": [ "error", "warning" ] }, "message": { "type": "string" }, "object_id": { "type": "string", "format": "uuid" }, "line": { "type": "integer", "minimum": 1 }, "column": { "type": "integer", "minimum": 1 }, "code": { "type": "string" }, "field": { "type": "string" } }, "required": [ "severity", "message", "code" ], "additionalProperties": false }, "Problem": { "type": "object", "properties": { "type": { "type": "string" }, "title": { "type": "string" }, "status": { "type": "integer" }, "code": { "type": "string" }, "detail": { "type": "string" }, "current_revision": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." }, "issues": { "type": "array", "items": { "$ref": "#/components/schemas/Issue" } } }, "required": [ "type", "title", "status", "code", "detail" ], "additionalProperties": false }, "NameRequest": { "type": "object", "properties": { "name": { "type": "string" } }, "required": [ "name" ], "additionalProperties": false }, "Command": { "oneOf": [ { "type": "object", "properties": { "Replace": { "$ref": "#/components/schemas/Project" } }, "required": [ "Replace" ], "additionalProperties": false }, { "type": "object", "properties": { "Batch": { "type": "array", "items": { "$ref": "#/components/schemas/Command" } } }, "required": [ "Batch" ], "additionalProperties": false }, { "type": "object", "properties": { "Add": { "$ref": "#/components/schemas/Kind" } }, "required": [ "Add" ], "additionalProperties": false }, { "type": "object", "properties": { "AddElement": { "type": "object", "properties": { "kind": { "$ref": "#/components/schemas/Kind" }, "layer": { "$ref": "#/components/schemas/Layer" }, "name": { "type": "string" }, "parent": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] } }, "required": [ "kind", "layer", "name", "parent" ], "additionalProperties": false } }, "required": [ "AddElement" ], "additionalProperties": false }, { "type": "object", "properties": { "Connect": { "type": "array", "prefixItems": [ { "$ref": "#/components/schemas/RelationKind" }, { "type": "string" }, { "type": "string", "format": "uuid" }, { "type": "string", "format": "uuid" } ], "minItems": 4, "maxItems": 4 } }, "required": [ "Connect" ], "additionalProperties": false }, { "type": "object", "properties": { "EditProject": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "alias": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", "description": "Unique persistent alias; core reserved words are forbidden." }, "name": { "type": "string" }, "description": { "type": "string" } }, "required": [ "id", "alias", "name", "description" ], "additionalProperties": false } }, "required": [ "EditProject" ], "additionalProperties": false }, { "type": "object", "properties": { "Reparent": { "type": "object", "properties": { "element": { "type": "string", "format": "uuid" }, "parent": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] } }, "required": [ "element", "parent" ], "additionalProperties": false } }, "required": [ "Reparent" ], "additionalProperties": false }, { "type": "object", "properties": { "Reidentify": { "type": "array", "prefixItems": [ { "type": "string", "format": "uuid" }, { "type": "string", "format": "uuid" } ], "minItems": 2, "maxItems": 2 } }, "required": [ "Reidentify" ], "additionalProperties": false }, { "type": "object", "properties": { "Rename": { "type": "array", "prefixItems": [ { "type": "string", "format": "uuid" }, { "type": "string" } ], "minItems": 2, "maxItems": 2 } }, "required": [ "Rename" ], "additionalProperties": false }, { "type": "object", "properties": { "Describe": { "type": "array", "prefixItems": [ { "type": "string", "format": "uuid" }, { "type": "string" } ], "minItems": 2, "maxItems": 2 } }, "required": [ "Describe" ], "additionalProperties": false }, { "type": "object", "properties": { "SetAlias": { "type": "array", "prefixItems": [ { "type": "string", "format": "uuid" }, { "type": "string" } ], "minItems": 2, "maxItems": 2 } }, "required": [ "SetAlias" ], "additionalProperties": false }, { "type": "object", "properties": { "Delete": { "type": "string", "format": "uuid" } }, "required": [ "Delete" ], "additionalProperties": false }, { "type": "object", "properties": { "AddStep": { "type": "array", "prefixItems": [ { "type": "string", "format": "uuid" }, { "type": "string", "format": "uuid" } ], "minItems": 2, "maxItems": 2 } }, "required": [ "AddStep" ], "additionalProperties": false }, { "type": "object", "properties": { "RemoveStep": { "type": "array", "prefixItems": [ { "type": "string", "format": "uuid" }, { "type": "integer", "minimum": 0 } ], "minItems": 2, "maxItems": 2 } }, "required": [ "RemoveStep" ], "additionalProperties": false }, { "type": "object", "properties": { "MoveStep": { "type": "array", "prefixItems": [ { "type": "string", "format": "uuid" }, { "type": "integer", "minimum": 0 }, { "type": "integer", "minimum": 0 } ], "minItems": 3, "maxItems": 3 } }, "required": [ "MoveStep" ], "additionalProperties": false }, { "type": "object", "properties": { "SetSteps": { "type": "array", "prefixItems": [ { "type": "string", "format": "uuid" }, { "type": "array", "items": { "type": "string", "format": "uuid" } } ], "minItems": 2, "maxItems": 2 } }, "required": [ "SetSteps" ], "additionalProperties": false }, { "type": "object", "properties": { "Layout": { "type": "string", "format": "uuid" } }, "required": [ "Layout" ], "additionalProperties": false }, { "type": "object", "properties": { "CreateNode": { "type": "object", "properties": { "diagram": { "type": "string", "format": "uuid" }, "node": { "$ref": "#/components/schemas/NodePlacement" } }, "required": [ "diagram", "node" ], "additionalProperties": false } }, "required": [ "CreateNode" ], "additionalProperties": false }, { "type": "object", "properties": { "EditNode": { "type": "object", "properties": { "diagram": { "type": "string", "format": "uuid" }, "original": { "type": "string", "format": "uuid" }, "node": { "$ref": "#/components/schemas/NodePlacement" } }, "required": [ "diagram", "original", "node" ], "additionalProperties": false } }, "required": [ "EditNode" ], "additionalProperties": false }, { "type": "object", "properties": { "RelocateNode": { "type": "object", "description": "Move an existing placement to another diagram while preserving its UUID, alias, geometry, collapse state and dependent artifact references. The target diagram must accept the element and must not already contain its placement.", "properties": { "node": { "type": "string", "format": "uuid" }, "diagram": { "type": "string", "format": "uuid" } }, "required": [ "node", "diagram" ], "additionalProperties": false } }, "required": [ "RelocateNode" ], "additionalProperties": false }, { "type": "object", "properties": { "MoveNode": { "type": "object", "properties": { "diagram": { "type": "string", "format": "uuid" }, "node": { "type": "string", "format": "uuid" }, "position": { "$ref": "#/components/schemas/Position" }, "with_descendants": { "type": "boolean" } }, "required": [ "diagram", "node", "position", "with_descendants" ], "additionalProperties": false } }, "required": [ "MoveNode" ], "additionalProperties": false }, { "type": "object", "properties": { "CreateElement": { "$ref": "#/components/schemas/Element" } }, "required": [ "CreateElement" ], "additionalProperties": false }, { "type": "object", "properties": { "EditElement": { "type": "array", "prefixItems": [ { "type": "string", "format": "uuid" }, { "$ref": "#/components/schemas/Element" } ], "minItems": 2, "maxItems": 2 } }, "required": [ "EditElement" ], "additionalProperties": false }, { "type": "object", "properties": { "CreateRelation": { "$ref": "#/components/schemas/Relation" } }, "required": [ "CreateRelation" ], "additionalProperties": false }, { "type": "object", "properties": { "EditRelation": { "type": "array", "prefixItems": [ { "type": "string", "format": "uuid" }, { "$ref": "#/components/schemas/Relation" } ], "minItems": 2, "maxItems": 2 } }, "required": [ "EditRelation" ], "additionalProperties": false }, { "type": "object", "properties": { "CreateDiagram": { "$ref": "#/components/schemas/Diagram" } }, "required": [ "CreateDiagram" ], "additionalProperties": false }, { "type": "object", "properties": { "EditDiagram": { "type": "array", "prefixItems": [ { "type": "string", "format": "uuid" }, { "$ref": "#/components/schemas/Diagram" } ], "minItems": 2, "maxItems": 2 } }, "required": [ "EditDiagram" ], "additionalProperties": false }, { "type": "object", "properties": { "CreateArtifact": { "$ref": "#/components/schemas/ArtifactLink" } }, "required": [ "CreateArtifact" ], "additionalProperties": false }, { "type": "object", "properties": { "EditArtifact": { "type": "array", "prefixItems": [ { "type": "string", "format": "uuid" }, { "$ref": "#/components/schemas/ArtifactLink" } ], "minItems": 2, "maxItems": 2 } }, "required": [ "EditArtifact" ], "additionalProperties": false }, { "type": "object", "properties": { "CreateTrace": { "$ref": "#/components/schemas/Trace" } }, "required": [ "CreateTrace" ], "additionalProperties": false }, { "type": "object", "properties": { "EditTrace": { "type": "array", "prefixItems": [ { "type": "string", "format": "uuid" }, { "$ref": "#/components/schemas/Trace" } ], "minItems": 2, "maxItems": 2 } }, "required": [ "EditTrace" ], "additionalProperties": false } ] }, "TransactionRequest": { "type": "object", "properties": { "commands": { "type": "array", "items": { "$ref": "#/components/schemas/Command" }, "minItems": 1, "maxItems": 200 }, "dry_run": { "type": "boolean", "default": false } }, "required": [ "commands" ], "additionalProperties": false }, "TransactionResult": { "type": "object", "properties": { "revision": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." }, "dry_run": { "type": "boolean" }, "changed": { "type": "boolean" }, "issues": { "type": "array", "items": { "$ref": "#/components/schemas/Issue" } }, "model": { "$ref": "#/components/schemas/Project" } }, "required": [ "revision", "dry_run", "changed", "issues" ], "additionalProperties": false }, "MutationResult": { "type": "object", "properties": { "revision": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." }, "changed": { "type": "boolean" }, "issues": { "type": "array", "items": { "$ref": "#/components/schemas/Issue" } }, "migration": { "anyOf": [ { "$ref": "#/components/schemas/MigrationReport" }, { "type": "null" } ] } }, "required": [ "revision", "changed" ], "additionalProperties": false }, "ValidationRequest": { "oneOf": [ { "type": "object", "properties": { "format": { "const": "json" }, "model": { "$ref": "#/components/schemas/Project" } }, "required": [ "format", "model" ], "additionalProperties": false }, { "type": "object", "properties": { "format": { "const": "arcadia" }, "source": { "type": "string" } }, "required": [ "format", "source" ], "additionalProperties": false } ] }, "ValidationResult": { "type": "object", "properties": { "revision": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." }, "valid": { "type": "boolean" }, "issues": { "type": "array", "items": { "$ref": "#/components/schemas/Issue" } }, "migration": { "anyOf": [ { "$ref": "#/components/schemas/MigrationReport" }, { "type": "null" } ] } }, "required": [ "revision", "valid", "issues" ], "additionalProperties": false }, "NeighborhoodRequest": { "type": "object", "properties": { "roots": { "type": "array", "items": { "type": "string", "format": "uuid" }, "minItems": 1, "maxItems": 100 }, "direction": { "type": "string", "enum": [ "incoming", "outgoing", "both" ], "default": "both" }, "relation_kinds": { "type": "array", "items": { "$ref": "#/components/schemas/RelationKind" } }, "max_depth": { "type": "integer", "minimum": 0, "maximum": 4, "default": 1 }, "max_objects": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 200 }, "revision": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." } }, "required": [ "roots" ], "additionalProperties": false }, "NeighborhoodResult": { "type": "object", "properties": { "revision": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." }, "elements": { "type": "array", "items": { "$ref": "#/components/schemas/Element" } }, "relations": { "type": "array", "items": { "$ref": "#/components/schemas/Relation" } }, "truncated": { "type": "boolean" } }, "required": [ "revision", "elements", "relations", "truncated" ], "additionalProperties": false }, "ElementPage": { "type": "object", "properties": { "revision": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/Element" } }, "next_after": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] } }, "required": [ "revision", "items", "next_after" ], "additionalProperties": false }, "RelationPage": { "type": "object", "properties": { "revision": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/Relation" } }, "next_after": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] } }, "required": [ "revision", "items", "next_after" ], "additionalProperties": false }, "ArtifactPage": { "type": "object", "properties": { "revision": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/ArtifactLink" } }, "next_after": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] } }, "required": [ "revision", "items", "next_after" ], "additionalProperties": false }, "TracePage": { "type": "object", "properties": { "revision": { "type": "integer", "minimum": 1, "description": "Current revision counter; use ETag as the opaque write validator." }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/Trace" } }, "next_after": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] } }, "required": [ "revision", "items", "next_after" ], "additionalProperties": false }, "ProjectPage": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/ProjectSummary" } }, "next_after": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] } }, "required": [ "items", "next_after" ], "additionalProperties": false }, "TransitionDirection": { "type": "string", "enum": [ "OaToSa", "SaToOa" ] }, "TransitionField": { "type": "string", "enum": [ "Name", "Description" ] }, "TransitionMapping": { "type": "object", "properties": { "source": { "$ref": "#/components/schemas/Id" }, "target": { "anyOf": [ { "$ref": "#/components/schemas/Id" }, { "type": "null" } ] }, "target_kind": { "anyOf": [ { "$ref": "#/components/schemas/Kind" }, { "type": "null" } ] } }, "required": [ "source", "target", "target_kind" ], "additionalProperties": false }, "FieldDecision": { "oneOf": [ { "type": "string", "enum": [ "TakeSource", "KeepTarget" ] }, { "type": "object", "properties": { "Value": { "type": "string" } }, "required": [ "Value" ], "additionalProperties": false } ] }, "FieldResolution": { "type": "object", "properties": { "source": { "$ref": "#/components/schemas/Id" }, "field": { "$ref": "#/components/schemas/TransitionField" }, "decision": { "$ref": "#/components/schemas/FieldDecision" } }, "required": [ "source", "field", "decision" ], "additionalProperties": false }, "TransitionRequest": { "type": "object", "properties": { "direction": { "$ref": "#/components/schemas/TransitionDirection" }, "sources": { "type": "array", "items": { "$ref": "#/components/schemas/Id" }, "maxItems": 100 }, "scope": { "type": "string", "enum": [ "SelectedOnly", "Required", "Subtree" ] }, "mappings": { "type": "array", "items": { "$ref": "#/components/schemas/TransitionMapping" }, "maxItems": 200 }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/TransitionField" } }, "resolutions": { "type": "array", "items": { "$ref": "#/components/schemas/FieldResolution" }, "maxItems": 400 }, "destination_diagram": { "anyOf": [ { "$ref": "#/components/schemas/Id" }, { "type": "null" } ] } }, "required": [ "direction", "sources", "scope", "mappings", "fields", "resolutions", "destination_diagram" ], "additionalProperties": false }, "FieldChange": { "type": "object", "properties": { "field": { "$ref": "#/components/schemas/TransitionField" }, "before": { "type": "string" }, "after": { "type": "string" } }, "required": [ "field", "before", "after" ], "additionalProperties": false }, "TransitionChange": { "type": "object", "properties": { "source": { "$ref": "#/components/schemas/Id" }, "target": { "$ref": "#/components/schemas/Id" }, "action": { "type": "string", "enum": [ "Create", "Update", "Reuse" ] }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/FieldChange" } } }, "required": [ "source", "target", "action", "fields" ], "additionalProperties": false }, "TransitionConflict": { "type": "object", "properties": { "source": { "anyOf": [ { "$ref": "#/components/schemas/Id" }, { "type": "null" } ] }, "target": { "anyOf": [ { "$ref": "#/components/schemas/Id" }, { "type": "null" } ] }, "field": { "anyOf": [ { "$ref": "#/components/schemas/TransitionField" }, { "type": "null" } ] }, "message": { "type": "string" } }, "required": [ "source", "target", "field", "message" ], "additionalProperties": false }, "TransitionPlan": { "type": "object", "properties": { "base_fingerprint": { "type": "string" }, "request": { "$ref": "#/components/schemas/TransitionRequest" }, "changes": { "type": "array", "items": { "$ref": "#/components/schemas/TransitionChange" } }, "conflicts": { "type": "array", "items": { "$ref": "#/components/schemas/TransitionConflict" } }, "warnings": { "type": "array", "items": { "type": "string" } }, "commands": { "type": "array", "items": { "$ref": "#/components/schemas/Command" } } }, "required": [ "base_fingerprint", "request", "changes", "conflicts", "warnings", "commands" ], "additionalProperties": false }, "TransitionEnvelope": { "type": "object", "properties": { "base_revision": { "$ref": "#/components/schemas/Revision" }, "plan": { "$ref": "#/components/schemas/TransitionPlan" } }, "required": [ "base_revision", "plan" ], "additionalProperties": false }, "ControlKind": { "type": "string", "enum": [ "Choice", "Merge", "Fork", "Join", "Loop" ] }, "ScenarioViewpoint": { "type": "string", "enum": [ "OperationalActivity", "ParticipantInteraction", "Functional", "BoundaryInterface", "MixedLegacy" ] }, "MessageKind": { "oneOf": [ { "type": "string", "enum": [ "Asynchronous", "Call", "Reply", "Create", "Delete" ] }, { "type": "object", "properties": { "Timer": { "type": "object", "properties": { "expression": { "type": "string" } }, "required": [ "expression" ], "additionalProperties": false } }, "required": [ "Timer" ], "additionalProperties": false } ] }, "MessageValue": { "type": "object", "properties": { "field": { "type": "string", "format": "uuid" }, "expression": { "type": "string" } }, "required": [ "field", "expression" ], "additionalProperties": false }, "LifelineBinding": { "type": "object", "properties": { "referenced": { "type": "string", "format": "uuid" }, "local": { "type": "string", "format": "uuid" } }, "required": [ "referenced", "local" ], "additionalProperties": false }, "StateKind": { "type": "string", "enum": [ "State", "Mode", "Initial", "Final", "Choice", "Junction", "Fork", "Join", "ShallowHistory", "DeepHistory", "EntryPoint", "ExitPoint", "Terminate" ] }, "TimeEventKind": { "type": "string", "enum": [ "After", "At" ], "description": "After is relative to source-state activation; At describes an absolute instant. Expressions are descriptive, not executed." }, "TransitionKind": { "type": "string", "enum": [ "External", "Local", "Internal" ] }, "EventBody": { "oneOf": [ { "type": "object", "properties": { "Signal": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/Id" }, "uniqueItems": true, "description": "Same-layer ExchangeItem identities carried by the signal." } }, "required": [ "items" ], "additionalProperties": false } }, "required": [ "Signal" ], "additionalProperties": false }, { "type": "object", "properties": { "Time": { "type": "object", "properties": { "kind": { "$ref": "#/components/schemas/TimeEventKind" }, "expression": { "type": "string" } }, "required": [ "kind", "expression" ], "additionalProperties": false } }, "required": [ "Time" ], "additionalProperties": false }, { "type": "object", "properties": { "Change": { "type": "object", "properties": { "expression": { "type": "string" } }, "required": [ "expression" ], "additionalProperties": false } }, "required": [ "Change" ], "additionalProperties": false } ] }, "PortContract": { "oneOf": [ { "type": "object", "properties": { "FunctionInput": { "type": "object", "properties": { "incoming_items": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "incoming_items" ], "additionalProperties": false } }, "required": [ "FunctionInput" ], "additionalProperties": false }, { "type": "object", "properties": { "FunctionOutput": { "type": "object", "properties": { "outgoing_items": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "outgoing_items" ], "additionalProperties": false } }, "required": [ "FunctionOutput" ], "additionalProperties": false }, { "type": "object", "properties": { "Component": { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "Standard", "Flow" ] }, "orientation": { "type": "string", "enum": [ "Unset", "In", "Out", "InOut" ] } }, "required": [ "kind", "orientation" ], "additionalProperties": false } }, "required": [ "Component" ], "additionalProperties": false }, { "type": "string", "enum": [ "Legacy" ] } ], "description": "FunctionInput/Output are SA Function-owned item contracts. Component is SA System/SystemActor-owned; Standard requires Unset. Legacy requires a preserved legacy record and emits compatibility warnings. Mixed Standard/Flow component connections are invalid." }, "LegacyPortContract": { "type": "object", "properties": { "direction": { "type": "string", "enum": [ "In", "Out", "InOut" ] }, "interface": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ] } }, "required": [ "direction", "interface" ], "additionalProperties": false }, "MigrationReport": { "type": "object", "properties": { "from_schema": { "type": "integer", "enum": [ 1, 2 ] }, "to_schema": { "type": "integer", "const": 3 }, "preserved_ports": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "alias": { "type": "string" }, "required_resolution": { "type": "string" } }, "required": [ "id", "alias", "required_resolution" ], "additionalProperties": false } }, "generated_endpoints": { "type": "array", "items": { "type": "object", "properties": { "exchange": { "type": "string", "format": "uuid" }, "side": { "type": "string", "enum": [ "source", "target" ] }, "port": { "type": "string", "format": "uuid" }, "owner": { "type": "string", "format": "uuid" }, "alias": { "type": "string" } }, "required": [ "exchange", "side", "port", "owner", "alias" ], "additionalProperties": false } }, "orientation_defaults": { "type": "array", "items": { "type": "object", "properties": { "exchange": { "type": "string", "format": "uuid" }, "oriented": { "type": "boolean", "const": true } }, "required": [ "exchange", "oriented" ], "additionalProperties": false } }, "required_resolutions": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "from_schema", "to_schema", "preserved_ports", "generated_endpoints", "orientation_defaults", "required_resolutions" ], "additionalProperties": false, "description": "Transient observations from explicit V1→V2→V3 or V2→V3 migration. No save or revision increase occurs merely by reading an old envelope." } } } }