Preserve editable routes across source projects and REST
This commit is contained in:
@@ -1735,6 +1735,51 @@
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"EdgeLabel": {
|
||||
"type": "object",
|
||||
"description": "Authored label placement relative to the computed polyline. Both fields are required.",
|
||||
"properties": {
|
||||
"fraction": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 1,
|
||||
"description": "Fraction of source-to-target polyline arc length."
|
||||
},
|
||||
"offset": {
|
||||
"$ref": "#/components/schemas/Position",
|
||||
"description": "Relative diagram-space displacement."
|
||||
}
|
||||
},
|
||||
"required": ["fraction", "offset"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"EdgeRoute": {
|
||||
"type": "object",
|
||||
"description": "One diagram's authored route for an existing Relation or Trace, including currently hidden edges. No separate identity. Only pinned points are stored; explicit empty routes are retained.",
|
||||
"properties": {
|
||||
"edge": {
|
||||
"type": "string",
|
||||
"format": "uuid",
|
||||
"description": "Existing Relation or Trace identity, never a node placement."
|
||||
},
|
||||
"waypoints": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/components/schemas/Position" },
|
||||
"maxItems": 128,
|
||||
"default": [],
|
||||
"description": "Absolute diagram positions in traversal order."
|
||||
},
|
||||
"label": {
|
||||
"oneOf": [
|
||||
{ "$ref": "#/components/schemas/EdgeLabel" },
|
||||
{ "type": "null" }
|
||||
],
|
||||
"default": null
|
||||
}
|
||||
},
|
||||
"required": ["edge"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"Size": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -3445,6 +3490,12 @@
|
||||
"additionalProperties": {
|
||||
"$ref": "#/components/schemas/NodePlacement"
|
||||
}
|
||||
},
|
||||
"routes": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/components/schemas/EdgeRoute" },
|
||||
"default": [],
|
||||
"description": "Unique by edge identity within this diagram. Stored order is retained. Each entry counts against the total model record admission limit. Missing routes in earlier schema-3 models default to empty."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -4406,6 +4457,40 @@
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"SetEdgeRoute": {
|
||||
"type": "object",
|
||||
"description": "Upsert by edge identity; preserves unrelated route entries and order. Uses existing transaction validation and ETag checks.",
|
||||
"properties": {
|
||||
"diagram": { "type": "string", "format": "uuid" },
|
||||
"route": { "$ref": "#/components/schemas/EdgeRoute" }
|
||||
},
|
||||
"required": ["diagram", "route"],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": ["SetEdgeRoute"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"RemoveEdgeRoute": {
|
||||
"type": "object",
|
||||
"description": "Reset to automatic routing. No-op if this existing diagram has no route for the existing edge.",
|
||||
"properties": {
|
||||
"diagram": { "type": "string", "format": "uuid" },
|
||||
"edge": { "type": "string", "format": "uuid" }
|
||||
},
|
||||
"required": ["diagram", "edge"],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": ["RemoveEdgeRoute"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
||||
Reference in New Issue
Block a user