Justoverclock this is exactly the right way to do this, sometimes it might be smart to make his even stricter during the beta's with something like:
"require": {
"flarum/core": ">= v2.0.0-beta.1 < 2.0"
},
This allows you to double check things before your extension is seen as fully compatible with 2.0. Preventing any "it worked during beta, but not stable" questions with users.
Then once 2.0 hits, a final check from your end is needed. If everything works as expected, update it to
"require": {
"flarum/core": "^v2.0.0"
},
Then tag a new release.
But, your approach will also work. Just to clarify 😉