@v2/photo-mode-tournament-voting-bridge closes the §133 Photo Mode tournament
and community jury voting integration. It composes @kuanyin/precognition and
@themis/voting into the v2.photo-mode-tournament-voting-manifest consumed by
V2PhotoMode, V2ReplayTheater, V2CommunityHub, and V2CompanionApp.
Source Packages#
@kuanyin/precognitionowns the submission moderation pre-pass over Photo Mode titles, captions, extracted text, and tags.@themis/votingowns ranked-choice jury ballots, approval voting, winner certification, and the reciprocalv2.photo-mode-tournament-voting-profile.
Voting Profile#
The reciprocal Themis profile is v2.photo-mode-tournament-voting-profile. Each
publishable tournament manifest requires:
- Kuanyin moderation before voting.
- At least two moderation-cleared submissions.
- Ranked-choice jury ballots through
RankedChoiceVotingEngine. - Approval ballots through
ApprovalVotingEngine. - Certified winners from the V2-local aggregation of ranked Borda points plus approval satisfaction.
The gRPC surface is libs/proto/v2/photo-mode/photo-mode-tournament.proto;
event topics are v2.photo-mode.submission.moderated,
v2.photo-mode.vote.ranked.cast, v2.photo-mode.vote.approval.cast, and
v2.photo-mode.winners.certified.
Runtime Boundary#
The bridge is off rollback, server-authoritative, and gallery/companion-only. It rejects live gameplay frame RPCs and cannot affect deterministic match simulation, Photo Mode camera capture, replay playback, AI, inventory, damage, or competitive frame outcomes.
CI ownership is enforced by
V2/ue/Tools/check-v2-photo-mode-tournament-voting-bridge.py.