// Results
 // Business constructor
 public Bid(
     Turn turn
     ,Gig gig
     ,int chances
     )
 {
     InitializeResults();
     _turn = new PredecessorObj<Turn>(this, RoleTurn, turn);
     _gig = new PredecessorObj<Gig>(this, RoleGig, gig);
     _chances = chances;
 }
            public CorrespondenceFact CreateFact(FactMemento memento)
            {
                Turn newFact = new Turn(memento);

                // Create a memory stream from the memento data.
                using (MemoryStream data = new MemoryStream(memento.Data))
                {
                    using (BinaryReader output = new BinaryReader(data))
                    {
                    }
                }

                return newFact;
            }
 // Fields
 // Results
 // Business constructor
 public Revenue(
     Win win
     ,Turn turn
     )
 {
     InitializeResults();
     _win = new PredecessorObj<Win>(this, RoleWin, win);
     _turn = new PredecessorObj<Turn>(this, RoleTurn, turn);
 }
 // Results
 // Business constructor
 public Repay(
     Turn turn
     ,int amount
     )
 {
     InitializeResults();
     _turn = new PredecessorObj<Turn>(this, RoleTurn, turn);
     _amount = amount;
 }
 // Fields
 // Results
 // Business constructor
 public Quit(
     Hire hire
     ,Turn turn
     )
 {
     InitializeResults();
     _hire = new PredecessorObj<Hire>(this, RoleHire, hire);
     _turn = new PredecessorObj<Turn>(this, RoleTurn, turn);
 }
 // Business constructor
 public Offer(
     Turn turn
     ,Candidate candidate
     ,int chances
     )
 {
     InitializeResults();
     _turn = new PredecessorObj<Turn>(this, RoleTurn, turn);
     _candidate = new PredecessorObj<Candidate>(this, RoleCandidate, candidate);
     _chances = chances;
 }