Summary: Port's aggregation properties support $team (entity ownership) as a path segment, but only when it is the first hop in a pathFilter. When $team appears as a mid-path hop, the traversal silently returns 0 — even when the underlying data is correctly modeled.
Example path that doesn't work:
EntityA → relation_to_EntityB → $team(_team) → domain
Why it should work: Every Port entity already carries a .team[] ownership array. The graph connection exists natively — Port just doesn't traverse it mid-path in the aggregation engine. No additional relation is needed; the data is already there.
Current workarounds (all have trade-offs):
Add a redundant direct relation (e.g. EntityB → domain) — requires ongoing maintenance
Add an explicit _team relation — forces internal Port concepts into the data model
Expected behavior: $team should be resolvable at any position in a pathFilter path, consistent with how it behaves as a first-hop segment.