[   Operation.Claim 
        : [ new OperationCommand().{ 
                status = [ Status.Ready ],
                allowed = [ Allowed.PotentialOwner, Allowed.BusinessAdministrator ],    
                setNewOwnerToUser = true,           
                newStatus = Status.Reserved
            } ],
    Operation.Start 
        : [ new OperationCommand().{ 
                status = [ Status.Ready ],
                allowed = [ Allowed.PotentialOwner, Allowed.BusinessAdministrator ],  
                setNewOwnerToUser = true,              
                newStatus = Status.InProgress
            },
            new OperationCommand().{ 
                status = [ Status.Reserved ],
                allowed = [ Allowed.Owner ],          
                newStatus = Status.InProgress
            } ],                  
     Operation.Stop 
        : [ new OperationCommand().{ 
                status = [ Status.InProgress ],
                allowed = [ Allowed.Owner, Allowed.BusinessAdministrator ],               
                newStatus = Status.Reserved
            } ],                 
    Operation.Release 
        : [ new OperationCommand().{ 
                status = [ Status.Reserved, Status.InProgress ],
                allowed = [Allowed.Owner, Allowed.BusinessAdministrator ],  
                setNewOwnerToNull = true,            
                newStatus = Status.Ready
            } ],    
    Operation.Suspend 
        : [ new OperationCommand().{ 
                status = [ Status.Ready ],
                allowed = [ Allowed.PotentialOwner, Allowed.BusinessAdministrator  ],              
                newStatus = Status.Suspended
            },
            new OperationCommand().{ 
                status = [ Status.Reserved, Status.InProgress ],
                allowed = [Allowed.Owner, Allowed.BusinessAdministrator ],          
                newStatus = Status.Suspended
            } ],   
    Operation.Resume 
        : [ new OperationCommand().{ 
                previousStatus = [ Status.Ready ],
                allowed = [ Allowed.PotentialOwner, Allowed.BusinessAdministrator  ],              
                setToPreviousStatus = true
            },
            new OperationCommand().{ 
                previousStatus = [ Status.Reserved, Status.InProgress ],
                allowed = [ Allowed.Owner, Allowed.BusinessAdministrator ],          
                setToPreviousStatus = true
            } ],
    Operation.Skip             
        : [ new OperationCommand().{ 
                status = [ Status.Created ],
                allowed = [ Allowed.Initiator, Allowed.BusinessAdministrator  ],              
                newStatus = Status.Obsolete,
                skipable = true
            },
            new OperationCommand().{ 
                status = [ Status.Ready ],
                allowed = [ Allowed.PotentialOwner, Allowed.BusinessAdministrator  ],              
                newStatus = Status.Obsolete,
                skipable = true
            },
            new OperationCommand().{ 
                status = [ Status.Reserved, Status.InProgress ],
                allowed = [ Allowed.Owner, Allowed.BusinessAdministrator ],          
                newStatus = Status.Obsolete,
                skipable = true
            } ],
    Operation.Delegate 
        : [ new OperationCommand().{ 
                status = [ Status.Ready ],
                allowed = [ Allowed.PotentialOwner, Allowed.BusinessAdministrator  ],
                addTargetUserToPotentialOwners = true,            
                newStatus = Status.Ready,
                exec = Operation.Claim
            },
            new OperationCommand().{ 
                status = [ Status.Reserved, Status.InProgress ],
                allowed = [ Allowed.Owner, Allowed.BusinessAdministrator ],
                addTargetUserToPotentialOwners = true,                         
                newStatus = Status.Ready,
                exec = Operation.Claim
            } ],
    Operation.Forward 
        : [ new OperationCommand().{ 
                status = [ Status.Ready ],
                allowed = [ Allowed.PotentialOwner, Allowed.BusinessAdministrator  ],
                userIsExplicitPotentialOwner = true,                
                addTargetUserToPotentialOwners = true,     
                removeUserFromPotentialOwners = true,   
                setNewOwnerToNull = true,         
                newStatus = Status.Ready
            },
            new OperationCommand().{ 
                status = [ Status.Reserved, Status.InProgress ],
                allowed = [ Allowed.Owner, Allowed.BusinessAdministrator ],
                userIsExplicitPotentialOwner = true,
                addTargetUserToPotentialOwners = true,     
                removeUserFromPotentialOwners = true, 
                setNewOwnerToNull = true,                             
                newStatus = Status.Ready
            }],            
    Operation.Complete 
        : [ new OperationCommand().{ 
                status = [ Status.InProgress ],
                allowed = [ Allowed.Owner, Allowed.BusinessAdministrator  ],      
                newStatus = Status.Completed
            } ],
    Operation.Fail 
        : [ new OperationCommand().{ 
                status = [ Status.InProgress ],
                    allowed = [ Allowed.Owner, Allowed.BusinessAdministrator  ],      
                newStatus = Status.Failed
            } ],
    
    Operation.Activate
    	: [ new OperationCommand().{
    			status = [ Status.Created ],
    			allowed = [ Allowed.Owner, Allowed.BusinessAdministrator ],
    			newStatus = Status.Ready
    		} ],
	Operation.Nominate
    	: [ new OperationCommand().{
    			status = [ Status.Created ],
    			allowed = [ Allowed.BusinessAdministrator ],
    			exec = Operation.Nominate
    		} ],    		
    Operation.Exit
        : [ new OperationCommand().{
                status = [ Status.Created, Status.Ready, Status.Reserved, Status.InProgress, Status.Suspended ],
                allowed = [ Allowed.BusinessAdministrator ],
                newStatus = Status.Exited
            } ]
]          
  