## §A.1 Class definitions

Class definitions add two new keywords `team` and `playedBy`. Classes which use these keywords are called teams and bound roles, respectively. Any class that inherits from a bound role class (either by an `extends` clause or by implicit inheritance, cf. §1.3.1.(c)) is again a bound role class.

§ A.1.1 | ClassDeclaration [Modifiers] [team] class Identifier [extends Type] [implements TypeList] [playedBy Type] [Guard] ClassBody

##### Contextual constraints:

1. A class which has a `playedBy` clause (a bound role class) may not be declared static and must be directly contained in a class that has the `team` modifier (a team class).
2. A class which inherits from a team class must have the `team` modifier, too.
3. A class which has a guard (see §5.4) must be a team or a role.