code: function() {
      var s = [];
      var genFunction = function(name, deftype, defsize) {
          deftype = deftype || "floating";
          defsize = defsize || 4;
  
          return function(type, size) {
              type = type || deftype;
              size = size || defsize;
  
              s.push({
                  name: name,
                  type: type,
                  size: size
              });
  
              return s;
          };
      };
  
      s.X = genFunction("X");
      s.Y = genFunction("Y");
      s.Z = genFunction("Z");
      s.Intensity = genFunction("Intensity", "unsigned", 2);
      s.Red = genFunction("Red", "unsigned", 2);
      s.Green = genFunction("Green", "unsigned", 2);
      s.Blue = genFunction("Blue", "unsigned", 2);
  
      return s;
  }
docs: Represents a schema definition.  Constructing schema definitions using this
  class is done by calling functions on the root object returned by <code>Schema()</code> call.
  The channels are pre-configured with default types and sizes, you can easily override them as well.
  
  @example
  var s = Schema().X().Y().Red();              // create a schema with X, Y and Red channels
  var s = Schema().X().Y("unsigned", 8).Red();   // same as above but override Y's type to unsigned and size to 8 bytes
  
  @class Schema
  @return An array like object which represents the schema definition