create = job => Object.assign({
    uid: job.uid ? job.uid : nanoid(),
    type: 'default',
    state: 'created',
    output: '',
    tags: '',
    priority: job.priority ? job.priority : 0,

    timings: {},

    template: {
        src: '',
        composition: '',

        frameStart: undefined,
        frameEnd: undefined,
        frameIncrement: undefined,

        continueOnMissing: false,
        settingsTemplate: undefined,
        outputModule: undefined,
        outputExt: undefined,
        imageSequence: false,

        renderSettings: undefined,
        outputSettings: undefined,
    },
    assets: [],
    actions: {
        prerender: [],
        postrender: [],
    },
}, job || {})
Take an optional minimal job json/object
and return a properly structured job object

@param  {Object} job optional
@return {Object}