If it works with Swagger but not with other tools, please give more details about how you are doing the requests with such tools. It's of course some wrong configuration.
I don't use the other tools, but I use Postman. Do you see the same issue with Postman? If yes, please share the Postman request here so I can try to reproduce the issue.
Correct, JSON is always case-sensitive.
I recommend you set UnknownMemberHandling property of the TXDataServer to TUnknownMemberHandling.Error. This way, XData will raise an error if the JSON contains properties that it does not know.