Problem
StudioTeamEndpoints.HandleListMembersAsync currently validates the team, pages through members, filters by TeamId in memory, and synthesizes pagination in the Host/API layer. This puts business query orchestration in the host and does not push team_id filtering into the projection store.
Why it matters
Host endpoints should compose HTTP concerns only. Team-member listing is an application/query-port concern and should be backed by projection-store filtering.
Acceptance criteria
- Application/query port exposes a typed contract for listing members by team.
- Projection query port pushes scope_id/team_id filters into the document store.
- Host endpoint delegates to the application/query contract without in-memory pagination/filter orchestration.
- Tests cover filtering and pagination at the query-port/application boundary.
Source
Follow-up from StudioMember async bind PR review; out of scope for the binding-run PR.
Problem
StudioTeamEndpoints.HandleListMembersAsync currently validates the team, pages through members, filters by TeamId in memory, and synthesizes pagination in the Host/API layer. This puts business query orchestration in the host and does not push team_id filtering into the projection store.
Why it matters
Host endpoints should compose HTTP concerns only. Team-member listing is an application/query-port concern and should be backed by projection-store filtering.
Acceptance criteria
Source
Follow-up from StudioMember async bind PR review; out of scope for the binding-run PR.