Review: Flatten PlayerProfileResponse (Mismatch 1)

review-740-2026-04-03 Doc

review ready

Verdict: READY

Template Completeness

  • [x] Type — Feature
  • [x] Lineage — References spike #278
  • [x] Repo — forgejo_admin/basketball-api
  • [x] User Story
  • [x] Context
  • [x] File Targets
  • [x] Acceptance Criteria (6 items)
  • [x] Test Expectations
  • [x] Constraints
  • [x] Checklist
  • [x] Related

Traceability

  • [x] story:WS-S12 label — "As an admin, I want to manage user accounts so that I can support parents directly"
  • [x] story note verified — found in project-westside-basketball user-stories section
  • [x] arch:basketball-api label — present on board item
  • [ ] arch note MISSING — [SCOPE] Create architecture note arch-basketball-api
  • [x] Forgejo issue — forgejo_admin/basketball-api#280, open

File Targets

  • [x] src/basketball_api/routes/players.py — verified: PlayerProfileResponse at line 40 with nested team/parent objects. No flattened fields yet. Ticket accurately describes what needs adding.

Repo Placement

OK — issue filed on basketball-api, work is in basketball-api. Single-repo scope.

Dependencies

  • [x] Parent spike #278 (board #738) — in next_up. Findings already captured in this ticket, no blocking dependency.
  • [x] No other tickets block this one. Sibling mismatch tickets (#741-#746) are independent.

Acceptance Criteria

6 AC items, all testable by an agent. Add 6 top-level Optional fields, populate from nested objects, keep nested objects intact. Clear, specific, no ambiguity.

Blast Radius

Additive-only change — no fields removed, no breaking changes. Frontend already expects these fields. Rollback is trivial (revert one file).

Decomposition Assessment

1 file target, 6 AC, single repo. All changes are in one Pydantic model + endpoint population. Estimated agent time <5 minutes. No decomposition needed.

Recommendation

  • [SCOPE] Create architecture note arch-basketball-api for component basketball-api (shared recommendation across all 7 mismatch tickets)