Pass full request object generateDialogueView instead of just id
Handle case when getting dialogue from profile that does not exist
Improve `getMessagePreview()` nullguard properties that may be missing
Refactor updateProductionProgress() to get seconds between `sptUpdateLastRunTimestamp` and now instead of crafts `StartTimestamp` and now
Store hideout craft progress as decimal for better accuracy when crafting without generator
Added code to EventOutputHolder to ensure we continue to return progress as an int