     @property 'shellid'
     @shellid @module.id
 
-  # disable Backbone's sync functionality
-  sync: => NotSupportedError 'Backbone::sync'
+    @properties [
+      'title',          # title of the piece of media
+      'description',    # description of the piece of media
+      'sources'         # contributing sources to the piece of media;
+                        # expected to be of type Array
+    ]
+
+
+  # -- model interface --
+  # To be overriden and implemented by inheriting classes
+
+  # Returns a URL that points to the thumbnail
+  # to be used for this piece of media.
+  thumbnail: =>
+
 
   # -- factory constructors --
 

    unless @options.model
      acorn.errors.MissingParameterError 'Shell.MediaView', 'model'



# Shell.RemixView -- uniform view to edit shell data.
# --------------------------------------------------

class Shell.RemixView extends athena.lib.View


    new shellClass.Model _.clone data


  # -- unsupported --

  # disable Backbone's sync functionality
  sync: => NotSupportedError 'Backbone::sync'


# register convenience construction functions globally.
acorn.shellWithAcorn = Shell.Model.withAcorn
acorn.shellWithData = Shell.Model.withData



# Shell.MediaView -- top level media interface.
# ---------------------------------------------

class Shell.MediaView extends athena.lib.View

  className: @classNameExtend 'shell-content-view'

  initialize: =>
    super
