Regarding search.
I believe for every custom content_type including etp_page_revision you will need a service-contract for search.
We might want to make a way to automatically create one for etp or require the application developer to provide one when they define a new type.