Payload
The packet's payload variant — the SDK-side model of the TAKPacketV2 payload_variant oneof. Exactly one subtype is present per packet.
None and Pli both mean "no typed payload": a position report. PLI is implicit on the wire (there is no bool pli field), so the serializer emits no oneof arm for either; Pli exists only so the parser can flag a deliberate position/delete report distinctly from a default-constructed packet.
Inheritors
Types
ADS-B / military air track. Maps to the AircraftTrack protobuf message (payload_variant tag 32). The structured fields are synthesized into a <remarks> line on rebuild when no <_aircot_> element fits.
9-line MEDEVAC request (CoT type b-r-f-h-c).
ATAK GeoChat message — both regular chat (b-t-f) and delivered / read receipts (b-t-f-d / b-t-f-r). Receipts leave message empty and set receiptForUid + receiptType to link back to the outbound message's event UID.
User-drawn tactical graphic: circle, rectangle, polygon, polyline, telestration, ranging circle, or bullseye.
Emergency alert / 911 beacon. Covers CoT types b-a-o-tbl (911), b-a-o-pan (ring the bell), b-a-o-opn (in contact), b-a-g (geo-fence breached), b-a-o-c (custom), b-a-o-can (cancel).
Fixed marker: spot, waypoint, checkpoint, 2525 symbol, or custom icon. Maps to the Marker protobuf message at payload_variant tag 35.
No payload variant. Serializes to an empty oneof — an implicit PLI.
An explicit position-location-information report.
Range and bearing measurement line. Maps to RangeAndBearing proto at payload_variant tag 36. Anchor endpoint is absolute lat/lon, not a delta from the event point.
Raw <detail> bytes shipped verbatim — the fallback for callers building packets directly with detail content the structured parser doesn't model. Maps to bytes raw_detail (payload_variant tag 33). CotXmlBuilder re-emits bytes inside <detail>…</detail> unchanged.
Named route consisting of ordered waypoints and control points. Maps to Route at payload_variant tag 37.
TAKTALK voice/text chat message (CoT type m-t-t). The voice audio itself rides UDP/RTP outside the mesh; this carries the text envelope plus a from_voice marker for receiver UX.
TAKTALK room/membership broadcast (CoT type y-). Not a chat message; receivers cache these to resolve room UUIDs (used in TakTalk.chatroomId and Chat.roomId) to a friendly name + roster for display.
Task / engage request (CoT type t-s).