Every BGP route carries path attributes describing how to reach the destination and influence selection.
Attribute categories:
Well-known mandatory. Must be in every UPDATE. (AS_PATH, NEXT_HOP, ORIGIN)
Well-known discretionary. Supported by all, but not required in every UPDATE. (LOCAL_PREF)
Optional transitive. If unknown, pass along unchanged. (COMMUNITY)
Optional non-transitive. If unknown, don't pass along. (MED)
I'll cover key attributes in the following units.