I also note that in Discourse-Assign you have a different file path structure which contains all your client-side javascript:
example from discourse-assign:
assets/javascripts/discourse-assign/routes/user-activity-assigned.js.es6
example from my plugin:
assets/javascripts/discourse/routes/user/reflection.js.es6
I think I have assumed the namespacing is like inserting templates into plugin outlets, when it should have its own plugin namespace?