Using $schema rather than a semver version requires forward compat to just give parsing a try and hope that anything that would be considered a major version change isn't still parsable by an older client. (Alternatively, you can just have no forward compat.)
Have you considered embedding a semver version number in the schema URL to enable forward compatability?
Originally posted by @JohnMcPMS in #94 (comment)