Currently Roblox does not provide a way to get these at the moment so if you wanted to create your own basic collision response code, you need to sort to some really hacky methods of getting these two things. It is also near impossible to do it with concave MeshParts. This would be especially important for calculating the impulse for crashes and impacts of imaginary objects or for objects outside of Roblox’s system.
This function should return the contact point between the parts and the apparent normal vector between them at the contact point.
There was a similar request a while back, but regarding the .Touched function. There are 2 issues with your request. You gave a general proposition, but no data format or anything. Storing a bunch of Vector3s for each collision is extremelly wasteful, to the point where you can expect FPS being halved in some complex games.
What I also proposed in that mentioned topic was a new class which is linked to certain internal data. You can then grab whatever info you need using methods, which means no userdatas have to be created for unused data.