flowchart LR
  subgraph Input
    A[Raw Hover JSON]
  end

  subgraph Pipeline
    direction LR
    B[1. Markdown Compaction]
    C[2. MarkupKind Reduction]
    D[3. Compact Field Names]
  end

  subgraph Output
    E[Compact Hover JSON]
  end

  A --> B
  B --> C
  C --> D
  D --> E

  B -.- B1["Collapse blank lines<br/>Shorten ```lang → `lc<br/>Trim trailing whitespace"]
  C -.- C1["markdown → m<br/>plaintext → p"]
  D -.- D1["contents → c, kind → k<br/>value → v, range → r<br/>start → s, end → e"]
