model OCL
	-- Invariants
		context MediaContent
			inv:
				MediaContent.allInstances->isUnique(i | i.ID)
		
		context MediaContent
			inv:
				MediaContent.allInstances->forAll(i | i.views >= 0)
		
		context Team
			inv:
				Team.allInstances->forAll(i | not i.supportTeam->isEmpty())
	
	
	-- Pre-Conditions
		context RaceOrganizer::disqualifyTeam(team: Team): void
			pre:
				self.teamsDisqualified->excludes(team)
		
		context CrewMember::sendMessage(message: Message): void
			pre:
				self.messagesSent->count(message) = 0
		
		context Team::setSkipper(skipper: Skipper): void
			pre:
				self.skipper.oclIsUndefined()
	
	
	-- Post-Conditions
		context RaceOrganizer::disqualifyTeam(team: Team): void
			post:
				self.teamsDisqualified->includes(team)
		
		context CrewMember::sendMessage(message: Message): void
			post:
				self.messagesSent->size() = self.messagesSent@pre->size + 1
		
		context SupportTeamMember::sendMessage(message: Message): void
			post:
				self.messagesSent->includes(message)