Current event-schemas repo suffers from a lot of copy-pasta - all the meta subobject schemas are copied to every schema, all the common properties related to revisions/pages/users are copied between files. JSONSchema has concepts which could eliminate the need for copy-paste: references, schema inheritance, merging different schemas etc.
These features are a part of the standard, so should be supported by the majority of clients and if we're worried they are not, we could use the features only in the master schema and expand it to a full schema in a pre-commit hook T206812
Another question is what to do if one of the core sub-schemas gets updated - do we automatically create a new version for all the schemas using them? I think that would be a wrong approach, instead, we could reference a specific version of the sub-schema in each of the schemas and leave the decision regarding updating to schema maintainers. This will give us more flexibility than trying to create sophisticated CI tests for checking all the copy-pasted documents. For example, we would be able to update the meta schema without simultaneously updating all the schemas in the registry (and all the producers) to comply with the new meta format and then slowly adapt use-cases.
I personally think using these features will be beneficial in the long run as maintaining potentially hundreds of copy-pasted JSON documents will get out of control pretty quickly and makes my eyes bleed from looking at this abomination of the DRY principle.