def method_missing(name, *args, &block)
      return add_child(name, *args, &block) if block && block.arity == 0
      add_property(name, *args, &block)
    end
def method_missing(name, *args, &block)
      return add_child(name, *args, &block) if block && block.arity == 0
      add_property(name, *args, &block)
    end
The class responds to all methods; treating any not defined as
 property/child declarations.

 @return [PropertyDeclaration, ChildDeclaration]