-(defmacro mob-structure (variables init logic render)
- `(list
- :init (lambda () ,init)
- :logic (lambda () ,logic)
- :render (lambda () ,render)
- :context (lambda ()
- ,(if variables
- `(mapcar #'list
- ',(mapcar #'car+ variables)
- (multiple-value-list
- (values-list ,(cons 'list (mapcar #'car+ variables)))))
- nil))))