{
  "$schema": "../_schema.json",
  "format": "pptx",
  "element": "hyperlink",
  "elementAliases": ["hlink"],
  "parent": "shape",
  "operations": {
    "add": true,
    "set": true,
    "get": true,
    "query": true,
    "remove": true
  },
  "paths": {
    "positional": [
      "/slide[N]/shape[M]/hyperlink",
      "/slide[N]/shape[M]/p[K]/r[L]/hyperlink"
    ]
  },
  "note": "Aliases: link. add attaches a shape-wide link only; inline run links are created via `set /slide[N]/shape[M]/p[K]/r[L] link=...`. Internal slide jumps use link=slide[N]; named actions use link=firstslide|lastslide|nextslide|previousslide|endshow.",
  "extends": "_shared/hyperlink",
  "properties": {
    "link": {
      "type": "string",
      "description": "external URL or internal target. pptx Set/Get canonical key on shape/run is 'link'. Alias: url.",
      "aliases": [
        "url"
      ],
      "add": true,
      "set": true,
      "get": true,
      "examples": [
        "--prop link=https://example.com"
      ],
      "readback": "URL string or internal target",
      "enforcement": "report"
    },
    "tooltip": {
      "type": "string",
      "description": "hover-text shown by PowerPoint when the link is moused over. Usually paired with 'link'; a tooltip-only set on a run that already has a link updates the existing tooltip.",
      "add": true,
      "set": true,
      "get": true,
      "examples": [
        "--prop link=https://example.com --prop tooltip=\"Open docs\""
      ],
      "readback": "tooltip text",
      "enforcement": "report"
    }
  }
}
