code: func NewProjectionFromBytes(bs []byte) (*Projection, error) {
  	eventSpec := types.EventSpec{}
  
  	err := ValidateJSONEventSpec(bs)
  	if err != nil {
  		return nil, err
  	}
  
  	err = json.Unmarshal(bs, &eventSpec)
  	if err != nil {
  		return nil, errors.Wrap(err, "Error unmarshalling eventSpec")
  	}
  
  	return NewProjectionFromEventSpec(eventSpec)
  }
docs: // NewProjectionFromBytes creates a Projection from a stream of bytes