code: @Nonnull
    public IRole createNewRole (@Nonnull @Nonempty final String sName,
                                @Nullable final String sDescription,
                                @Nullable final Map <String, String> aCustomAttrs)
    {
      // Create role
      final Role aRole = new Role (sName, sDescription, aCustomAttrs);
  
      m_aRWLock.writeLocked ( () -> {
        // Store
        internalCreateItem (aRole);
      });
      AuditHelper.onAuditCreateSuccess (Role.OT, aRole.getID (), sName);
  
      // Execute callback as the very last action
      m_aCallbacks.forEach (aCB -> aCB.onRoleCreated (aRole, false));
  
      return aRole;
    }
docs: Create a new role.
  
  @param sName
  The name of the new role. May neither be <code>null</code> nor
  empty.
  @param sDescription
  Optional description text. May be <code>null</code>.
  @param aCustomAttrs
  A set of custom attributes. May be <code>null</code>.
  @return The created role and never <code>null</code>.