Roles currently are not versioned, like they were in legacy. There is no draft feature, this is required for policy CRUD and edit cancelling. The functionality must be added in the API before it can be implemented in platformui.
Legacy separates between `new` and `temporary` roles. Both are a kind of draft. New roles are created with `is_new` = 1. Temporary roles are created from new roles, and have `version` set to role ID. This indicates that for any temporary role there will always exist a non-temporary counterpart (version = 0), but it will not be considered "published" until `is_new` is 0. It also means that when version != 0, version is unique across all roles.