The Generic Swap Facet is only used to make swaps or multiple swaps without bridging in a single transaction.
It does this by using the LibSwap library.
function swapTokensGeneric(LiFiData memory _lifiData, LibSwap.SwapData calldata _swapData)
Performs swap(s) before withdrawing the final token to the user
Some methods accept a SwapData _swapData parameter.
Swapping is performed by a swap specific library that expects an array of calldata to can be run on variaous DEXs (i.e. Uniswap) to make one or multiple swaps before performing another action.
The swap library can be found here.
Some methods accept a LiFiData _lifiData parameter.
This parameter is strictly for analytics purposes. It's used to emit events that we can later track and index in our subgraphs and provide data on how our contracts are being used. LiFiData and the events we can emit can be found here.