!7 // a stage can be not started, running or done sclass Stage { S stageName; //long started, done; // timestamps bool done; O result; //S log; sS _fieldOrder = "stageName result"; } cmodule MultiStageProcessing > DynObjectTable { start { itemToMap = func(Stage s) -> Map { litorderedmap("Stage Name" := s.stageName, Result := s.done ? str(s.result) : "not done yet") }; } // API Stage addStage(S stageName) { ret addAndReturn(nu Stage(+stageName)); } Stage addStage(S stageName, O result) { ret addAndReturn(nu Stage(+stageName, done := true, +result)); } }