code: func (s *Script) Source() (interface{}, error) {
  	if s.typ == "" && s.lang == "" && len(s.params) == 0 {
  		return s.script, nil
  	}
  	source := make(map[string]interface{})
  	// Beginning with 6.0, the type can only be "source" or "id"
  	if s.typ == "" || s.typ == "inline" {
  		src, err := s.rawScriptSource(s.script)
  		if err != nil {
  			return nil, err
  		}
  		source["source"] = src
  	} else {
  		source["id"] = s.script
  	}
  	if s.lang != "" {
  		source["lang"] = s.lang
  	}
  	if len(s.params) > 0 {
  		source["params"] = s.params
  	}
  	return source, nil
  }
docs: // Source returns the JSON serializable data for this Script.