fix: make outputJson generic to accept strongly-typed interfaces
outputJson previously required Record<string, unknown>, which forced
callers to either use untyped objects or add a catch-all index signature
to typed interfaces like IssueData. Using a generic T extends object
allows any typed object to be passed while keeping the Record<string,
unknown> cast scoped to pickFields where dynamic key access is actually
needed.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>