prototype(Neos.Form.Builder:Form) {
    @class = 'Neos\\Form\\Builder\\Fusion\\FormImplementation'

    identifier = 'form'
    presetName = 'default'
    formElementType = 'Neos.Form:Form'
    
    renderingOptions = Neos.Fusion:RawArray {
        submitButtonLabel = ${q(node).property('buttonText')}
    }

    renderCallbacks = Neos.Fusion:RawArray
    firstPage = Neos.Form.Builder:FormPage.Definition {
        elements = Neos.Form.Builder:ElementCollection
    }
    furtherPages = Neos.Form.Builder:PageCollection
    finishers = Neos.Form.Builder:FinisherCollection

    @process.wrapWithContainer = ${'<div class="' + q(node).property('marginTop') + '">' + value + '</div>'}

    @cache {
        # By default Forms are not cached at all in order to avoid nasty bugs. If a form is "static" it should be cached for GET requests
        mode = 'uncached'
        context {
            # Fusion currently requires a context field to be specified for cache mode "uncached", but it's not actually needed here
            1 = 'none'
        }
    }
}