voidCommitFrame(intframeNum,IControllersource);// Why pass in frameNum? Calling api
voidPokeFrame(intframeNum,stringinput);// Why does this exist as something different than Commit Frame?
LoadStateResultCheckTimeLines(TextReaderreader,boolonlyGuid,boolignoreGuidMismatch,outstringerrorMessage);// No need to return a status, no reason to have hacky flags, no need to pass a textreader
stringGetTime(boolpreLoad);// Rename to simply: Time, and make it a Timespan
voidDumpLogIntoSavestateText(TextWriterwriter);// Why pass a Textwriter, just make a string property that is the inputlog as text
voidLoadLogFromSavestateText(TextReaderreader,boolisMultitracking);// Pass in the text? do we need to care if it is multitracking, and can't hte movie already know that?
int?Frames{get;}// Nullable is a hack, also why does calling code need to know the number of frames, can that be minimized?
intRawFrames{get;}// Hacky to need two different frame properties
stringGetInput(intframe);// Should be a property of a Record object