Gathering facts with custom fact_path

Need help understanding the differences and limitations of:

  • Play-level gather_facts
  • Explicit ansible.builtin.gather_facts
  • Explicit ansible.builtin.setup

From observation it seems that ansible.builtin.gather_facts is either not aware of or does not honor the play-level use of fact_path. Is that accurate? If we want to perform explicit gathering of facts, within a play, would we need to use ansible.builtin.setup with the fact_path option even if fact_path is set as a play-level keyword?

For background we need to gather cusom Windows facts, from a PS1 script, deployed to remote instances.

@gundalow would you have any insight on this?