Pending an all-in-one solution, allow me to share this alternative get-each-and-combine solution for anyone who many have a similar need.
function getRequirements() {
// Invoke LiveWhale.
global $_LW;
// Parameters.
$data_type = 'profiles';
$types_to_use = ['Major','Minor','Program'];
// Query LW for requirements data.
// No caching here, given this is part of a larger process.
$args = [
'type'=>'Major & Minor Requirements',
'paginate' => 999,
'exclude_tag' => 'exclude-from-majors-minors-page',
];
// Can't get all three at once, so must get separately...
$results = [];
foreach ($types_to_use as $type) {
$args['filter'] = 'profiles_315|equals|'.$type;
$results[$type] = $_LW->read($data_type, $args);
}
//...and merge into one.
$requirements = [];
foreach ($results as $set) { // avoids overlapping keys (0,1,2...)
foreach ($set as $profile) {
$requirements[$profile['id']] = $profile; // take opportunity to use id as key
}
}
// Return array
return $requirements;
}