function LightComponent(params) {
	    var _this;

	    var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : LightComponent.defaults;
	    var instructions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : LightComponent.instructions;

	    classCallCheck(this, LightComponent);

	    _this = possibleConstructorReturn(this, getPrototypeOf$2(LightComponent).call(this, params, defaults, instructions));

	    if (_this.params.build) {
	      var build = _this.build(_this.params);

	      if (!build) {
	        throw new CompositionError$1('LightComponent', '.build() method should return a THREE.Object3D or a Promise resolved with THREE.Object3D.', assertThisInitialized(assertThisInitialized(_this)));
	      }

	      if (build instanceof Promise) {
	        build.then(function (native) {
	          _this.native = native;
	        });
	      } else _this.native = build;

	      _this.wait(_this.wrap());
	    }

	    _this.applyCommand('postIntegrate');

	    return _this;
	  }
Static instructions
@member {Object} module:core.LightComponent#instructions
@static
@default
{
  position: ['x', 'y', 'z'],
  rotation: ['x', 'y', 'z']
}