§1.2.1.(e) Role features

Access modifiers for members of roles have some special interpretation:

  1. A private member is also visible in any implicit sub role (see implicit inheritance §1.3.1.(c)).
    In contrast to inner classes in Java, private members of a role are not visible to the enclosing team.
  2. The default visibility of role members restricts access to the current class and its sub-classes (explicit and implicit).
  3. protected role members can only be accessed from the enclosing team or via callin (§4).
  4. public role members grant unrestricted access.

Additionally, a role always has access to all the features that its enclosing team has access to.

Only public members can ever be accessed via an externalized role (§1.2.2).