Visual shell shared by the OVSX extension card and the MCP server card in the unified
Extensions view. Owns the layout, the icon slot, the title row (name + version + type
badge), the description, the publisher row with its trust icon, and the hover tooltip.
State and actions stay per-type: callers pass their own actions node and map their
domain trust signal onto ExtensionCardTrust. This keeps both card types
visually consistent (and makes adding future artifact types straightforward) without
coupling their behaviour.
Visual shell shared by the OVSX extension card and the MCP server card in the unified Extensions view. Owns the layout, the icon slot, the title row (name + version + type badge), the description, the publisher row with its trust icon, and the hover tooltip.
State and actions stay per-type: callers pass their own
actionsnode and map their domain trust signal onto ExtensionCardTrust. This keeps both card types visually consistent (and makes adding future artifact types straightforward) without coupling their behaviour.