Just to clarify things as many people here already mentioned big issues if C2 would get breaking changes. The perspectives of Meteor Community Packages is compatibility-first and @storyteller and I try to make things as non-breaking as possible unless we are forced to.
Currently the bigger issue is async computations in simple schema that would also have consequences to Collection 2 as the whole validation for Simple Schema would be async.
A simple example: a field is optional if user has a role x. A field with such computed optional property may then look like this:
isAllowed: {
type: Boolean,
optional: async () => {
return !Roles.userIsInRole(Meteor.userId(), 'canDoThin', 'admins')
}
}
* Please don’t pin me on the usecase for the above code