In object-oriented terms, the previous implementation violated the Liskov Substitution Principle. Props between these two components (Button and Link) were not substitutable. This led to TypeScript errors and increased overall complexity without significant DX gains. To address this, the LinkButton has been extracted into a dedicated component.