Very good question Adrian.
id and _id are the same. We use _id as primary identifier, since id is more mainstream key for identifier we’re adding id as well.
ExternalId is the id we receive from your main website.
__v is the version of records on our database. Each time a record is updated we’ll increase the version. This will let us know if the same record is being edited in two different browsers and if a conflict is happening. It will prevent users overwriting each other’s content in some edge cases.