Currently, as of 7/14/23, the Actor:SendMessage() documentation is missing a critical piece of information. Currently, it does not specify that tables with mixed keys that are passed in SendMessage will be altered, with some keys being dropped. This is because SendMessage serializes the data that you give it, just like with Remote* instances.
The behavior regarding tables is essentially the same whenever Luau tables are converted into a generic table accepted by our engine API’s. We have some documentation about table conversion rules here:
Ideally I think we should have some common documentation for these limitations so that each API that accepts a table doesn’t need to reiterate the limitations. (Although it might not hurt to link to some sort of common documentation discussing the issue.)