 
 class ui.ComponentType
   constructor: ({@name, @width, @height, @isCounter, @stackProperty, @stackAfter,
-                 @displayNameSingular, @displayNamePlural,
-                 @draggable, @template, @summaryTemplate} = {}) ->
+                 @displayNameSingular, @displayNamePlural, @controllerClass,
+                 @draggable, @contains, @template, @summaryTemplate} = {}) ->
     check @name, String
     check @width, Match.Optional Number
     check @height, Match.Optional Number



class ui.Controller extends EventEmitter
  # does nothing for now, but can be used for instanceof


class ui.PanelContainerController extends ui.Controller

      else
        rules = component.game().rules
        Template["#{rules.replace /\s/g, ''}ComponentView"] ? Template.componentDefaultView
      controller = new @controllerClass uiType: @, component: component
      Blaze.With (controller: controller, component: component), -> template

  summary: (count, stack) ->
    if stack?
