You can create your own set of templates in the project structure under /app/<project>/components/page.
You can commit this code in the code repository, in the ui.apps. Whenever you will deploy the code, these templates will be deployed in the AEM. Here you can maintain multiple versioned templates as per your requirement.
Interestingly, the "extending page properties" seems to be adding properties to a component on the page, not on the page its self? Ideally, we would add the propperties to the page template, so that pages get the properties, not a page component. THen we can search for pages with a given property value, rather than searching for components which might belong to all pages?