We build with the assumption that while we have a robust JDS API, the JDS itself is intended to morph and update rapidly down the line without requiring effort from engineers.
For example, in the future, the JDS can recolor, reformat, or even re-layout entire component groups without having to change anything from the consumers' point of view, allowing us to quickly adapt our unified design language without taking precious time.
This is why the JDS has lots of small and abstracted classes, like JdsLink — because this gives us maximum leeway to adjust how all links look like in the system, while simultaneously ensuring that devs only need to know semantically that it's a link, ignoring what color or form it should be.