In Alembic, UVs can be defined with different scopes. The most common one
is "face varying" scope, which maps to Blender's polygon loops, where a value
is stored for each vertex of each polygon. This makes sense as a given vertex
might be on a UV seam and thus have multiple possible UV coordinates.
However, it is also possible to define UVs using a "vertex" scope, meaning that
we will have a single UV value for each vertex. This can happen when the mesh
is split according to the UV islands, in which case it makes sense to only store
one value per vertex, as vertices are guaranteed to only have a single possible
UV coordinate.
Currently, the Alembic importer only supports the former case, this patch
implements the latter case. The implementation is pretty straighforward,
we mainly have to properly check whether the size of the UVs indices given
by the sample matches the size of the attribute domain (loops vs. vertices).
UVs are then assigned to the loop UVs based on the index of the vertex pointed
to by the loop.
Here is a test file (.blend and .abc), the UV map is not imported in Blender 2.93: