Based on a numeric point system based on reporting, age and citizenship status, it becomes easy. I propose something like
Up to 350 points gets nothing 351-500 = single shot rifles and shotguns. 501-700 = long rifles and long shotguns, 700-900 = pistols, long rifles, shotguns using ammo holding ammunition. 900+ can get anything.
The rest needs congress to figure out, but:
Opinion is arrest takes 500 points away, ilegal alien takes 900 away, Mental tests can add or remove points, baker act = -650. EX military/police/? and clean +300 and you figure out the rest
Time can add back points on a yearly basis at 100 points per year when no offenses are recorded.