I couldn't find how to extract the keys from the master View record, but in the end extracted them from the filter in the detail Preview server event:
public function recordsSelecting(&$filter): void
{
// Extract club_id and league_id from the incoming filter
if (!preg_match('/`club_id`\s*=\s*(\d+)/', $filter, $m1)) {
return; // Not in preview context
}
$clubId = $m1[1];
// Extract league_id if present (not strictly needed)
$leagueId = null;
if (preg_match('/`league_id`\s*=\s*(\d+)/', $filter, $m2)) {
$leagueId = $m2[1];
}
...........
I'd still be interested to learn if there's a cleaner, more direct way.