Query raw set-level training data with flexible filters: by exercise name (fuzzy), muscle group, specific muscle, or exercise IDs. Returns individual set records with weight, reps, RIR, date, exercise info, and rest: rest_s = seconds rested BEFORE this set (gap from the previous completed set of the same exercise by tick time; null on the first set of an exercise, on sets ticked in bulk, and on gaps over 30 min — null means "not a rest", never 0) and rest_target_s = the timer target the user was given for it (null when no timer ran; absent on sets logged before rest timers shipped). Use for custom analysis, data export, or when you need granular training data that the higher-level tools don't cover. Max 200 results PER PAGE — when the response has truncated=true, pass its next_cursor back as cursor (keeping every other argument identical, including sort) to read the next page. PROVENANCE: filtering by muscle_group or muscle matches ANY involvement (primary mover OR synergist), not just direct work — the response declares meta.counting_basis and annotates each row with contribution (0-1), plus is_primary on the muscle_group path; for a landmark-comparable count keep is_primary=true rows. Filtering by exercise_name returns meta.resolution naming the exercise_id(s) actually read, whether the name was ambiguous, and the runner-up candidates — check it before trusting a name-filtered result, and re-query by exercise_ids for an exact lift. Each row also carries measure ('reps' | 'duration' | 'distance'; absent means reps), duration_s and distance_m for timed/distance sets, and effective_load_kg when present (absent on older sets — read weight_kg then). On a duration or distance set, reps is NOT a rep count and e1rm is not meaningful (ignore it even when present): read duration_s / distance_m instead.