The details are different of course and I didn't mean embedding it in the caps list class - just putting both pruning mechanisms under `_determine_runnable_apps`. 

Their details are different but they do the thing that your function says - determine runnable apps. An app isn't runnable if the platform isn't compatible. Not very logical having them separate, nor was it for me having platform check pruning pre-installed app lists, though I can't see a use case where you'd store a list of non-runnbale pre-installed apps. 

All around awkward for future devs analysing this code.

Opened a ticket for this: https://github.com/robotics-in-concert/rocon_app_platform/issues/111