diff --git a/engine-contract.json b/engine-contract.json index b0c8908..03e6457 100644 --- a/engine-contract.json +++ b/engine-contract.json @@ -139,13 +139,21 @@ "name": "DiagramLayout::Route", "kind": "metadata", "attributes": [ - "points" + "points", + "general" ], "migratorEmitted": true, "consumers": [ "internal/semantic/semantics/layout.go" ] }, + { + "name": "DiagramLayout::Route::general", + "kind": "element", + "consumers": [ + "internal/semantic/semantics/layout.go" + ] + }, { "name": "DiagramLayout::Route::points", "kind": "element", diff --git a/libraries/DiagramLayout.sysml b/libraries/DiagramLayout.sysml index fdf0b1a..06b9641 100644 --- a/libraries/DiagramLayout.sysml +++ b/libraries/DiagramLayout.sysml @@ -17,8 +17,13 @@ library package DiagramLayout { metadata def Route { doc /* The waypoints a connection, transition, succession or flow is - * drawn through, in order, flattened as x0, y0, x1, y1, ... */ + * drawn through, in order, flattened as x0, y0, x1, y1, ... + * A specialization has no element of its own to annotate: its + * Route is stated about the specific element and names the + * general it is drawn to, `ref :>> general : Sup;`, one Route + * per general. */ attribute points : ScalarValues::Real[0..*] ordered nonunique; + ref general : Base::Anything[0..1]; } metadata def Canvas {