Well, that's just the way I force the implementers to not forget those mandatory fields. They shouldn't need to override getData for that, because every request has those fields. I suppose we could use protected class variables, but abstracting these functions is more OOP. I just can't make them abstract now, because it would create a BC with existing code, and that's why I added deprecated tags for the next version.