code: func (rc *RequestContext) MarshalJSON() ([]byte, error) {
  	return json.Marshal(&jsonRequestContext{
  		(*requestContextAlias)(rc),
  		rc.Authorizer,
  	})
  }
docs: // MarshalJSON reverts the effect of type aliasing and struct embedding used
  // during the marshalling step to make the pattern seamless.