This is a somewhat philosophical comment (and we should probably not touch anything right now):
We have Regions2D.mask and Regions2D.transect_mask. Conceptually they do the same thing, but Regions2D.mask uses data stored with the Regions2D object (the region annotation) and da_Sv to generate masks, and Regions2D.transect_mask uses transect sequence-related dicts and da_Sv that are both external of the Regions2D object.
My other comment is about potential method name changess -- seems that if we were to make the names clear and specific wrt the actual functionality, we would change Regions2D.mask to Regions2D.region_mask.
From a comment to #162: