body A ID (always <= bodyIdB for consistent ordering)
body B ID (always >= bodyIdA for consistent ordering)
body A index
body B index
contact index (index in contacts.contacts when active, -1 when freed)
contact normal in body B's local space
contact points (max 4 for stable manifold)
two edges for intrusive doubly-linked list: edges[0] = edge in bodyA's contact list, edges[1] = edge in bodyB's contact list
flags bitfield (@see CachedManifoldFlags)
number of contact points (0-4)
whether this contact was processed this frame (for stale contact cleanup)
sub-shape A ID
sub-shape B ID
contact between two shapes