@@ -161,6 +161,10 @@ components:
161161 type : array
162162 items :
163163 $ref : ' #/components/schemas/PresentationRelatedResource'
164+ links :
165+ type : array
166+ items :
167+ $ref : ' #/components/schemas/PresentationLink'
164168 events :
165169 $ref : ' #/components/schemas/PresentationHighlightEvents'
166170 metrics :
@@ -171,6 +175,7 @@ components:
171175 Highlight presentation definition. The `fields` define the fields to show in the highlight page.
172176 If multiple ComponentPresentations match, fields are merged by `fieldId` according to binding rank.
173177 Related resources follow the same merge semantics using `resourceId` as the identity key.
178+ Links follow the same merge semantics using `linkId` as the identity key.
174179 required :
175180 - title
176181 - fields
@@ -232,6 +237,48 @@ components:
232237 - Different resourceId entries are appended.
233238 - Display order is determined by the order field.
234239
240+ PresentationLink :
241+ type : object
242+ properties :
243+ linkId :
244+ type : string
245+ description : ' Stable identity key for merging across presentations, analogous to fieldId and resourceId.'
246+ title :
247+ type : string
248+ description : ' CEL expression that returns the displayed link title.'
249+ target :
250+ type : string
251+ description : ' CEL expression that returns a relative or fully-qualified link target.'
252+ openInNewTab :
253+ type : boolean
254+ default : false
255+ description : ' Whether the link opens in a new tab. Defaults to false.'
256+ tooltip :
257+ type : string
258+ description : ' Optional CEL expression that returns tooltip text.'
259+ filter :
260+ type : string
261+ description : ' Optional CEL boolean expression deciding whether the link is shown. Missing filters default to true.'
262+ order :
263+ type : number
264+ format : double
265+ description : ' Display order. Higher value means it shows first in UI.'
266+ required :
267+ - linkId
268+ - title
269+ - target
270+ - order
271+ description : |
272+ Link definition for the highlight page. Each entry defines a navigation link shown for a component.
273+ Merge semantics follow related resource rules:
274+ - All presentations whose binding matches the component contribute links.
275+ - Same linkId with higher specificity wins (override).
276+ - Different linkId entries are appended.
277+ - Display order is determined by the order field.
278+ CEL expressions are evaluated against the component presentation context. The filter is evaluated first;
279+ if it evaluates to false the link is omitted. If the filter includes the link but required data cannot be
280+ evaluated, the resolved highlight response reports an error link.
281+
235282 ComponentHighlightProjection :
236283 discriminator :
237284 propertyName : _type
@@ -1462,4 +1509,4 @@ components:
14621509 connectedComponents :
14631510 type : boolean
14641511 neighboringComponents :
1465- type : boolean
1512+ type : boolean
0 commit comments