     return 0
     
   program_behavior = (name) -> {
-    _EXPORTS: ['tick', 'collision', 'apply']
+    _EXPORTS: ['tick', 'apply']
     _AUTHORITY: {
       selected: (world) -> world.index == world.get('next_index')
     }

      my.assert sprite[method], "#{sprite.label()}: no '#{method}' property"
      sprite[method](key, value)

    collision: (world, args) ->
      [proposing_sprite, collision_subject, coordinates] = args
      return unless proposing_sprite == sprite
      # if this is my sprite to handle
      if collision_subject.get('obstruction')
        world.call 'reset_index'
        load_program 'interrupt'
      else
        sprite.call 'commit', coordinates

    apply: (world, args) ->
      {target, action} = args
      return unless world.get 'editable'      


  children = []
  actions.keys([]).map (key) ->
    # if contents is a string, it is a primitive function.
    # if contents is an RxArray, it is a list of commands.
    contents = actions.get(key)
    children.push program_row(key, contents.all()) unless _.isString(contents)
  children
