▁Buff ers ▁an ▁alternative ▁to ▁data - cent ric ▁C ++ ▁classes ▁and ▁struct s , ▁especially ▁where ▁inter oper ability ▁with ▁other ▁languages ▁or ▁systems ▁might ▁be ▁needed ▁in ▁the ▁future . ▁ ▁Example ▁A ▁schema ▁for ▁a ▁particular ▁use ▁of ▁protocol ▁buff ers ▁associ ates ▁data ▁types ▁with ▁field ▁names , ▁using ▁integers ▁to ▁identify ▁each ▁field . ▁( The ▁protocol ▁buffer ▁data ▁contains ▁only ▁the ▁numbers , ▁not ▁the ▁field ▁names , ▁providing ▁some ▁band width / storage ▁sav ings ▁compared ▁with ▁systems ▁that ▁include ▁the ▁field ▁names ▁in ▁the ▁data .) ▁// poly line . proto ▁syntax ▁= ▁" proto 2 "; ▁ ▁message ▁Point ▁{ ▁▁ ▁required ▁int 3 2 ▁x ▁= ▁ 1 ; ▁▁ ▁required ▁int 3 2 ▁y ▁= ▁ 2 ; ▁▁ ▁optional ▁string ▁label ▁= ▁ 3 ; ▁} ▁ ▁message ▁Line ▁{ ▁▁ ▁required ▁Point ▁start ▁= ▁ 1 ; ▁▁ ▁required ▁Point ▁end ▁= ▁ 2 ; ▁▁ ▁optional ▁string ▁label ▁= ▁ 3 ; ▁} ▁ ▁message ▁Poly line ▁{ ▁▁ ▁repeated ▁Point ▁point ▁= ▁ 1 ; ▁▁ ▁optional ▁string ▁label ▁= ▁ 2 ; ▁} ▁ ▁The ▁" Point " ▁message ▁defines ▁two ▁mand atory ▁data ▁items , ▁x ▁and ▁y . ▁The ▁data ▁item ▁label ▁is ▁optional . ▁Each ▁data ▁item ▁has ▁a ▁tag . ▁The ▁tag ▁is ▁defined ▁after ▁the ▁equal ▁sign . ▁For ▁example , ▁x ▁has ▁the ▁tag ▁ 1 . ▁ ▁The ▁" Line " ▁and ▁" Pol y line " ▁messages ,