Drupal has pretty good multilingual support out of the box. It's also fairly easy to create new entities and just add translation support through the annotation. These things are well documented elsewhere and a quick search will reveal how to do that. That is not what this post is about. This post is about the UX around selecting which fields are translatable.
The NoOp destination plugin was needed because the NullDestination plugin appears to not work on purpose.
I had a Drupal 8 migration where there was some data that was available, but not available from the source DB. However, I was able to get this data in a separate CSV file and a value in the source db was available in this CSV file also. So I had a way around the issue.
This process plugin was created due to a dodgy source repository. Not all the files were available and the default file_copy plugin would crash and burn if the source was not there. This plugin can be used in the process section of a Drupal 8 migration like this;