2626*AircraftTrack.aircraft_type max_size:8
2727*AircraftTrack.squawk int_size:16
2828*AircraftTrack.category max_size:4
29- *AircraftTrack.cot_host_id max_size:64
29+ *AircraftTrack.cot_host_id max_size:64
30+
31+ # --- Typed geometry payloads (v2 protocol extension) ---
32+ #
33+ # CotGeoPoint: sint32 deltas from the enclosing event's latitude_i/longitude_i.
34+ # For nearby vertices (telestrations, small rectangles) the varint+zigzag
35+ # encoding is 2-3 bytes per field, cutting telestration vertex data in half
36+ # versus sfixed32. int_size:32 keeps the C type a plain int32.
37+ # Named with a `Cot` prefix to avoid a collision with `meshtastic.GeoPoint`
38+ # in device_ui.proto, which is an unrelated zoom/latitude/longitude type.
39+ *CotGeoPoint.lat_delta_i int_size:32
40+ *CotGeoPoint.lon_delta_i int_size:32
41+ #
42+ # DrawnShape pool sizing. `kind` and `style` are varint enums (no int_size
43+ # needed). stroke_color / fill_color are Team enum, also varint. stroke_argb
44+ # / fill_argb are fixed32 (always 4 bytes on the wire). Vertex pool is 32
45+ # entries x ~12B each ~= 384B worst case. Telestrations beyond 32 vertices
46+ # MUST be pre-truncated by the sender with `truncated = true`.
47+ *DrawnShape.vertices max_count:32
48+ *DrawnShape.major_cm int_size:32
49+ *DrawnShape.minor_cm int_size:32
50+ *DrawnShape.angle_deg int_size:16
51+ *DrawnShape.stroke_weight_x10 int_size:16
52+ *DrawnShape.bullseye_distance_dm int_size:32
53+ *DrawnShape.bullseye_bearing_ref int_size:8
54+ *DrawnShape.bullseye_flags int_size:8
55+ *DrawnShape.bullseye_uid_ref max_size:48
56+
57+ # Marker pool sizing. Strings bounded tight to keep fixed pool small on
58+ # ESP32 nanopb. parent_uid matches existing TAKPacketV2.uid cap (48).
59+ # iconset fits "f7f71666-8b28-4b57-9fbb-e38e61d33b79/Google/hiker.png"
60+ # (~52 chars) with slack.
61+ *Marker.parent_uid max_size:48
62+ *Marker.parent_type max_size:24
63+ *Marker.parent_callsign max_size:24
64+ *Marker.iconset max_size:80
65+
66+ # RangeAndBearing pool sizing.
67+ *RangeAndBearing.anchor_uid max_size:48
68+ *RangeAndBearing.range_cm int_size:32
69+ *RangeAndBearing.bearing_cdeg int_size:16
70+ *RangeAndBearing.stroke_weight_x10 int_size:16
71+
72+ # Route pool sizing. 16 links x ~24B each ~= 384B worst case. prefix is
73+ # ATAK's short waypoint name prefix ("CP", "RP", etc.) — 8 chars is plenty.
74+ *Route.links max_count:16
75+ *Route.prefix max_size:8
76+ *Route.stroke_weight_x10 int_size:16
77+ *Route.Link.uid max_size:48
78+ *Route.Link.callsign max_size:16
79+ *Route.Link.link_type int_size:8
80+
81+ # GeoChat receipt extension. receipt_for_uid matches TAKPacketV2.uid caps.
82+ *GeoChat.receipt_for_uid max_size:48
83+
84+ # CasevacReport pool sizing. All numeric fields are small (0..255 for
85+ # patient counts, 1 byte for flags bitfields); strings are short.
86+ *CasevacReport.equipment_flags int_size:8
87+ *CasevacReport.terrain_flags int_size:8
88+ *CasevacReport.litter_patients int_size:8
89+ *CasevacReport.ambulatory_patients int_size:8
90+ *CasevacReport.us_military int_size:8
91+ *CasevacReport.us_civilian int_size:8
92+ *CasevacReport.non_us_military int_size:8
93+ *CasevacReport.non_us_civilian int_size:8
94+ *CasevacReport.epw int_size:8
95+ *CasevacReport.child int_size:8
96+ *CasevacReport.zone_marker max_size:16
97+ *CasevacReport.frequency max_size:16
98+
99+ # EmergencyAlert pool sizing. UIDs match TAKPacketV2.uid caps (48).
100+ *EmergencyAlert.authoring_uid max_size:48
101+ *EmergencyAlert.cancel_reference_uid max_size:48
102+
103+ # TaskRequest pool sizing. All four strings are capped tight so the
104+ # worst-case wire size stays under the LoRa MTU with headroom. task_type
105+ # is a short category tag; target_uid/assignee_uid match TAKPacketV2.uid
106+ # conventions; note is the one user-entered field.
107+ *TaskRequest.task_type max_size:12
108+ *TaskRequest.target_uid max_size:32
109+ *TaskRequest.assignee_uid max_size:32
110+ *TaskRequest.note max_size:48
0 commit comments