I think you got a Fundamental missunderstanding how Linetrace works. If you trace by Channel Visibility as example it will return you the first thing you hit that Blocks on that Channel. It can be anything you mentioned above. Base your Logic on the Hit Result you recive.
Why would you do any Priority? You only hit one thing at a time and never get multiple results back. Or do you want your trace trigger absolutly everything it hits on its full length? The first thing it hits is your Priority
You gotta be more precise than that. You still hit one or the other first. You make it sound like you want to hit a Point and than get everything around that Point in a certain Range to then choose what is in that range to prioritize. Is it that what you are looking for?
no. i think I am just too confused about it as I moved from unity. There i would cast a ray from camera to the mouse world position, check layers in an array. But i just read that I could use Trace for objects and try to cast to object types to find out what has been hit.
Same is true for Channels. You get something back you hit (anything rly) and you can filter your results down via Casting, Interface Calls or whatever you preffer. Maybe this helps you out? Collision Filtering - Unreal Engine