Great article Ynze. Is the difference with your solution and David blog is that he's requiring an attribute to be placed on each page property where as you've applied it to all properties?
Thanks Surjit 😁. Yes correct, that is the main difference. I felt that there was more to talk about in the subject of required properties and extending property metadata on a global scale (not property specific).