I've came in situation when I needed slightly different html structure for form element (something like crossover of treeview and checkboxlist). Creating "partial" type and proper partial would add too much development overhead. It would be easier solution to provide path to the the partial to use:
facilities:
context: [create,update]
tab: 'Facilities'
label: 'Facilities'
type: checkboxlist
partialPath: field_treecheckboxlist
and OctoberCMS would handle everything else as normal checkboxlist. As I see, this would require adding two lines in renderFieldElement().