Skip to content

Conformance posture: Cursor-on-Target (CoT) and TAK

Adapter: src/nous/interop/cot.py (BL-024)

Standard: CoT is the wire format ATAK / WinTAK / iTAK consume. The canonical spec lives in the MITRE CoT 2.0 schema.

Current posture: The adapter encodes a CoT 2.0 event element with type="a-f-G-U-C" by default (a friendly ground-unit combatant; override via data["type"]), explicit time, start, and stale attributes, how="m-g" (machine, GPS), and a point element with lat / lon / hae / ce / le. Attribute values are escaped with xml.sax.saxutils.quoteattr. The encoder refuses to emit when the source estimate is older than max_age_s (default 60 s, configurable per ADR 0011 freshness rule SC-4). Decode is a narrow XML reader that explicitly refuses DOCTYPE and ENTITY declarations (XXE-safe).

What is supported: Single-event encode and decode, lat / lon / hae plus optional ce / le accuracy, detail.contact.callsign, detail.remarks. The encoded byte stream is suitable for a TAK server's TCP / UDP listener.

What is omitted: Mesh delivery, COP overlays, encrypted variants, the wider detail schema (track, image, shape). The TAK-protocol negotiation lands with the streaming adapter follow-up.

Conformance claim: None. This is a documented best-effort compatibility posture, not a certified conformance claim. The 2026-05-23 audit confirmed the required-attribute completeness (closes the baseline H3 finding).