!7 // a stage can be not started, running or done sclass Stage { S stageName; long started, done; // timestamps O result; S log; sS _fieldOrder = "stageName result"; } module MultiStageProcessing > DynObjectTable { // API Stage addStage(S stageName) { Stage s = nu Stage(+stageName); add(s); ret s; } Stage addStage(S stageName, O result) { Stage s = nu Stage(+stageName, done := true, +result); add(s); ret s; } }