code: func validateContext(ctx interface{}, parentCtxType reflect.Type) {
  	ctxType := reflect.TypeOf(ctx)
  
  	if ctxType.Kind() != reflect.Struct {
  		panic("web: Context needs to be a struct type")
  	}
  
  	if parentCtxType != nil && parentCtxType != ctxType {
  		if ctxType.NumField() == 0 {
  			panic("web: Context needs to have first field be a pointer to parent context")
  		}
  
  		fldType := ctxType.Field(0).Type
  
  		// Ensure fld is a pointer to parentCtxType
  		if fldType != reflect.PtrTo(parentCtxType) {
  			panic("web: Context needs to have first field be a pointer to parent context")
  		}
  	}
  }
docs: //
  // Private methods:
  //
  // Panics unless validation is correct