Grant-path registry — the surfaces through which a role can be
granted to an actor.
Four builtins:
- admin — granted by an admin via role_grant_offer_create (subject to
the consumer's authorize callback) or admin-side direct grant.
- self_service — toggled by the holder themselves via
self_service_role_set (allowlisted by eligible_roles).
- system — granted by system code paths (signup, automation, etc.)
that don't fit either of the above.
- bootstrap — granted exactly once during the bootstrap flow
(keeper, admin on a fresh install).
Open registry on top so consumers can declare additional paths
(e.g. 'invite_only', 'sso_assertion') without an upstream release.
RoleSpec.grant_paths references entries from this registry; the
default for admin_actions.grantable_roles is grant_paths.includes('admin'),
the default for self_service_role_actions eligibility is
grant_paths.includes('self_service'). Mirrors the open-registry
pattern used for RoleName, ScopeKindName, CredentialTypeName,
and AuditEventTypeName.