In Xamarin cross-platform architecture, what is the role of an abstraction interface in the shared layer?