experimenting with @MirrorsUsed

in attempt to reduce maintenance of purity libraries it may prove
beneficial to keep @MirrorsUsed out of the "model" library as it
shouldn't need it in the first place, however it does require the
abstract interface classes to implement their function to ensure the
symbols get picked up by dart2js