IEEE 754-2019 states that the functions:: {nearestInt, floor, ceil, and a few more} must exist and that applicable languages have shortcut "names" to access IEEE 754-specified behavior; and that these names and defaults be adequately described in accompanying documentation. This effectively "passes the buck" to the compiler front end and run time library people.
As far as converting infinities to integer, maximum-positive (+Infinity) and maximum negatives (-infinity) are desired.
As far as converting a NaN (or NaR) to integer; signless zero (0) seems most appropriate.
{I use the word signless in case there are 1's complement or sign magnitude machines thinking about doing a posit implementation.}
The default conversion::
i = f;
would be nearestInt() in C, and FORTRAM and would be dependent on the multiple-type-inheritance resolution of other languages like C++, Java, Ada,...
Languages {(such as FORTRAN) which have real-complex arithmetic specifications}, specify that the conversion of a complex number to an integer use the complex absolute value intrinsic. So, in this case one would get int(SQRT(3.0^2+4.0^2)) = 5
So, these kind of specifications are best left to the languages. Then, what Posit/unum must define is the existence of conversions {nearestint(), floor(), ceil(); and possibly:: intnearestzero(), intfarthestfromzero() } and like 754-2019, specify that implementations must specify the mappings of float to integer into these intrinsics.