"It's not clear how to mix and match pages with different properties without utilising multiple inheritance. Please provide guidance."
I've been mulling this one over and my response would be as follows:
"Mobileness" is not a property of the page; it's a property of the browser. For better or worse, it's a property of the site too. Protectedness and watchedness are properties of the page. So, bearing in mind that Minerva might present different IDs for certain interface elements, there are 2 pages in your example, Page
and MinervaPage
. Both have isWatched
and isProtected
getters and watch
/unwatch
and protected
/unprotect
mutators.