The interface between callbacks and the new logger from #2 only allows for minimal customization of artifact logging (only allows for specification of subdir under [run_id]/artifacts/ [subdir] /artifact.ext).
Having a exchange class would support richer artifact logging.