(define-splat (name arg1 arg2 ... argn) (local-vars (var1 value1) (var2 value2) ... (varn valuen)) (preconditions . body) (initializer . body) (finalizer . body) (wait-for fluent-list . body) (event-handler (event predicate) (action action) (method context . body))The wait-for, event-handler, and method forms can be repeated as necessary to describe all of the relevant parts. Any of the parts except the initial (name . args) binding form can be omitted, and parts can appear in any order.