Index: main.py
===================================================================
--- main.py	(revision 1)
+++ main.py	(revision 2)
@@ -10,7 +10,19 @@
 
     def reveal_spies(self, spies):
+        """If this player is a spy, this method will be called to reveal the identities
+        of *all* the spies (including this player).
+
+        It is passed as an array of IDs.
+
+        """
         pass
 
     def propose_team(self, count):
+        """Asks the player to propose a team as a team-lead.
+
+        Must return an array of `count` unique IDs.  The proposed team may
+        include the player, but does not need to.
+
+        """
         team = list(range(self.count))
         shuffle(team)
@@ -18,16 +30,50 @@
 
     def approve_team(self, team):
+        """Asks the player to vote on a proposed team.
+
+        True indicates approval, False disapproval.  The player will be asked
+        to vote on all teams, even one that it proposes.
+
+        """
         return True
 
     def observe_team_vote(self, approved, votes):
+        """Allows the player to observe the outcome of a vote to approve a proposed
+        team.
+
+        The final result is given as `approved`, and individual votes (ordered
+        by player ID) are given as an array as `votes`.
+
+        """
         pass
 
     def perform_mission(self):
+        """If this player is a spy, called to ask the player whether to fail the
+        mission.
+
+        True indicates that this player will not cause a failure, False that it
+        will cause a failure.
+
+        Note that some missions require 2 players to attempt a mission failure
+        to actually fail the mission.
+
+        """
         return False
 
     def observe_mission(self, success, failures):
+        """Allows the player to observe the outcome of a mission.
+
+        The final result is given as `success`.  The number of failures is
+        given (as an integer) as `failures`.
+
+        """
         pass
 
     def observe_game(self, success):
+        """Allows the player to observe the outcome of the game.
+
+        True indicates the Resistance won, False the Government (spies).
+
+        """
         pass
 
@@ -58,5 +104,4 @@
     def observe_mission(self, success, failures):
         pass
-
 
 
@@ -160,3 +205,5 @@
                 pass
 
-main(10)
+
+if __name__ == '__main__':
+    main(10)
