In more detail
A card is a block from BEGIN:VCARD to END:VCARD with one property per line: FN (formatted name), N (structured name: family; given; additional; prefixes; suffixes), TEL, EMAIL, ADR, ORG and optionally PHOTO. Parameters such as TYPE=CELL label each value. Three versions are in use: 2.1, 3.0 (RFC 2426) and 4.0 (RFC 6350); 3.0 is the most widely supported, and a .vcf file can hold many cards one after another.
Why it matters
Version differences cause most import problems: older 2.1 cards need an explicit character set for accented names, and some apps ignore 4.0-only features. A photo embedded as Base64 can make one card tens of kilobytes, far too big for a QR code. Getting the N field order wrong swaps first and last names in the address book. A QR code containing a vCard lets a phone add the contact in one scan.
Example
A minimal version 3.0 card:
BEGIN:VCARD
VERSION:3.0
N:Doe;Jane;;;
FN:Jane Doe
ORG:Example Ltd
TEL;TYPE=CELL:+1-202-555-0143
EMAIL;TYPE=INTERNET:[email protected]
END:VCARD
Common confusion
vCard holds contacts; iCalendar (.ics) uses a very similar text syntax for calendar events.