Proper way to define a Migration yaml?
Where is this file supposed to really be?


It's config, so config/install is fine


  What should it be named to get picked up?


Like other config it's module_name.type.machine_name.yml, so (e.g.) migrate_plus.migration.id.yml


  do I have to uninstall/install the module numerous times as I iterate over a POC and make changes to the migration definition?


No, just like a normal config import you can do it partially:

drush cim --partial --source=/path/to/your/module/config/install




I did exactly what you did when I first played with Migrate Plus - tried to put the config in a migrations folder, like the example, but it didn't work for me either.

As migrations are config, this does make sense looking back - otherwise Migrate Plus would need to do something non-standard when discovering/importing migration configurations.