# Warfighting Data Model

# Raft Next Generation Command and Control (NGC2) Warfighting Data Model (WDM)

The Raft Warfighting Data Model (WDM) is a structured data model for tactical command and control, composed for the U.S. Army’s Next Generation Command and Control (NGC2) program. It provides a shared language for capturing the operational picture: what exists in the battlespace, and what is being done about it.

The model is designed for explicit interoperability. External identifiers and provenance metadata allow WDM records to bridge to other tactical data models and source systems, including OMS UCI messages, Cursor on Target (CoT) events, AIS, ADS-B, Link-16 track reports, and GCCS-J.

Ontology alignment with BFO and the Common Core Ontologies (CCO) provides a formal semantic foundation, enabling WDM records to participate in cross-domain knowledge representation and reasoning alongside other DoW and IC ontology-aligned systems.

The Raft Data Platform (RDP) provides the runtime for this model. RDP offers a federated data catalog, eventually-consistent mesh replication, data governance and distribution policies, and related platform services. WDM defines the structure, while RDP handles storage, transport, and access control. Every record carries security markings, provenance, and replication metadata so that data can be trusted, attributed, and shared across classification boundaries and disconnected networks.

## raft/wdm/ngc2/v1/entity.proto

AviationInfo message
Aviation domain attributes. From ADS-B, flight plans, radar, Link-16.
Hide 10 properties
aircraft_type string
Aircraft type (e.g., "F-35A Lightning II", "C-17A Globemaster III").
icao_type string
ICAO type designator (e.g., "B738", "F35").
wake_category WakeCategory
Wake turbulence category.
registration string
Tail number / registration.
operator string
Operating unit, command, or organization.
flight_number string
Callsign or flight number (e.g., "REACH 421", "EVAC 01").
origin string
Departure airport (ICAO code).
destination string
Destination airport (ICAO code).
emergency EmergencyStatus
Emergency status.
vertical_mode VerticalMode
Vertical flight mode.
Circle message
A circle defined by a center point and radius. No GeoJSON equivalent but widely used in military applications. Examples: engagement area, weapon effects radius, sensor range ring, circular error probable (CEP).
Hide 3 properties
center Position
Center position of the circle.
radius_meters double
Radius in meters. Must be positive.
height_meters double
Optional height above center to extrude in meters. A non-zero value creates a cylinder.
CovarianceMatrix3 message
Upper triangle of a symmetric 3x3 matrix. For ENU covariance: xx=East-East, yy=North-North, zz=Up-Up. [ xx xy xz ] [ yy yz ] [ zz ]
Hide 6 properties
xx double
xy double
xz double
yy double
yz double
zz double
Ellipse message
An ellipse defined by center, semi-axes, and orientation. For a circle, set semi_major_axis_meters == semi_minor_axis_meters. Not GeoJSON compatible. Examples: positional uncertainty ellipse, radar coverage footprint, communications coverage area.
Hide 5 properties
center Position
Center position of the ellipse.
semi_major_axis_meters double
Semi-major axis length in meters (the longer radius).
semi_minor_axis_meters double
Semi-minor axis length in meters (the shorter radius).
orientation_degrees double
Orientation of the semi-major axis in degrees clockwise from true north. Range: 0.0 to 180.0 (symmetric across the semi-minor axis).
height_meters double
Optional height above center to extrude in meters. A non-zero value creates an elliptic cylinder.
EmitterNotation message
Emitter notation identification (ELNOT/CENOT).
Hide 3 properties
notation string
ELNOT or CENOT identifier string.
confidence double optional
Confidence that this identification is correct (0.0-1.0).
type EmitterNotationType
Whether this notation is an ELNOT or CENOT.
Entity message
Core representation of a tracked object in the battlespace. An Entity is anything with identity that warfighters need to track: platforms, units, facilities, equipment, personnel, events, control measures, etc. ## Flexible Field Model Entities use a **field-optional** design rather than strict entity subtypes. Most fields are optional - populate only what is relevant for the specific entity being represented. This flexibility allows the schema to represent diverse entity types without requiring separate message definitions for each category. Different entity types naturally use different field subsets: - **Maritime vessel**: location, motion, maritime info, identities (MMSI), dimensions - **Aircraft**: location, motion, aviation info, identities (Mode-S), assessment - **Ground vehicle**: location, motion, ground info, assessment, labels - **Facility**: location, dimensions, assessment (no motion) - **Person**: location, assessment (minimal fields) - **Control measure**: shape (or geometry), assessment, labels (no motion/dimensions) - **Event**: location, provenance, description (transient, no motion) ## Required vs Optional Fields **Minimally required for all entities:** - `id`: Unique identifier (generated if not provided) - `provenance.updated_at`: When this data was last modified **Commonly populated but optional:** - `name`: Human-readable identifier - `location.position`: Geographic coordinates - `assessment`: Tactical assessment (disposition, environment) **Domain-specific (populate as applicable):** - `type_info.maritime`: For ships, boats, submarines - `type_info.aviation`: For aircraft, helicopters, UAVs - `type_info.ground`: For vehicles, dismounts, equipment - `type_info.orbital`: For satellites, space objects - `type_info.signal`: For SIGINT/ELINT emissions **Motion-related (omit for stationary entities):** - `motion`: Velocity and acceleration (platforms in motion) - `orbital_motion`: Keplerian elements (satellites) - `state_vector`: Position and velocity vectors (high-precision orbital) **Specialized use cases:** - `shape`: Structured geometry (polygons, ellipses, circles, polylines) - `geometry`: Extended spatial representation as WKT string - `targeting`: When entity is a potential target - `dimensions`: Physical measurements when known - `details`: System-specific extensions ## Examples by Entity Type **Naval vessel (comprehensive):** ``` { "id": "...", "name": "USS Arleigh Burke", "location": {...}, "motion": {...}, "type_info": {"maritime": {"vessel_type": "MILITARY", "mmsi": "..."}}, "assessment": {"disposition": "FRIEND", "environment": "SURFACE"}, "dimensions": {...}, "provenance": {...} } ``` **Aircraft (typical):** ``` { "id": "...", "name": "REACH 421", "location": {...}, "motion": {...}, "type_info": {"aviation": {"aircraft_type": "C-17A", "callsign": "REACH421"}}, "assessment": {"disposition": "FRIEND"}, "provenance": {...} } ``` **Ground vehicle (minimal):** ``` { "id": "...", "location": {...}, "motion": {...}, "assessment": {"disposition": "HOSTILE", "environment": "SURFACE"}, "provenance": {...} } ``` **Facility (no motion):** ``` { "id": "...", "name": "FOB Lightning", "location": {...}, "assessment": {"disposition": "FRIEND"}, "dimensions": {...}, "provenance": {...} } ``` **Event (transient):** ``` { "id": "...", "name": "IED Strike", "description": "Vehicle-borne IED...", "location": {...}, "provenance": {...} } ``` ## Field Population Guidelines 1. **Populate what you know** - Omit unknown or irrelevant fields 2. **Don't invent data** - Empty/default values can mislead consumers 3. **Use type_info discriminator** - Populate the domain-specific section that applies 4. **Provenance is critical** - Always include source and timestamp 5. **Assessment is required for warfighting context** - Disposition and environment provide tactical context The authoritative timestamp for entity updates is in `provenance.updated_at`.
Hide 32 properties
id string
Unique identifier (UUID).
__security__ SecurityMarking
Classification and handling caveats.
name string
Name given to this entity.
description string
Human-readable description or remarks.
identities Identity repeated
External identifiers from source systems. Examples: MMSI, Mode-S address, Link-16 track number.
flags EntityFlags
Operational flags (simulated, exercise).
type_info EntityTypeInfo
Domain-specific attributes (maritime, aviation, ground).
provenance Provenance
Data lineage and source attribution.
location SpatialLocation
Geographic position, orientation, and uncertainty.
motion Motion
Velocity and acceleration.
geometry string
Extended geometry for non-point entities (WKT format). Use for unit boundaries, routes, engagement areas. Examples: POINT(lon lat) - "POINT(69.2 34.5)" (Kabul) LINESTRING(lon lat, ...) - "LINESTRING(44.3 33.3, 44.4 33.4)" (MSR Tampa) POLYGON((lon lat, ...)) - "POLYGON((44 33, 45 33, 45 34, 44 34, 44 33))" (AO) CIRCLE((lon lat), radius_meters) - Non-standard but commonly supported
assessment EntityAssessment
Warfighter's assessment: affiliation, environment, confidence. This is ASSESSED information, not ground truth.
dimensions PhysicalDimensions
Physical size and weight.
targeting TargetingInfo
Targeting data if this entity is a potential target.
labels LabelsEntry repeated
Extensible key-value metadata. Keys should use namespace convention: "domain.system.field"
orbital_motion OrbitalMotion
Motion for orbiting space objects.
state_vector StateVector
State vector for orbiting space objects.
ontology Ontology
Semantic classification and formal ontology alignment. Includes operational category and optional references to external ontologies (BFO, CCO, domain-specific) for interoperability.
details Struct
Entity-specific metadata as structured data. Use this field when entity information isn't represented in the base Entity fields. Clients can include domain-specific data (e.g., fire unit ammunition levels, target formation details, custom sensor attributes). Prefer strongly-typed fields (labels, type_info) when available for better schema enforcement. TYPE IDENTIFIER CONVENTION: For structured data, include an "@type" field to identify the schema type. This helps clients determine which protobuf message to unmarshal the data into. Type URL formats: - WDM extensions: "raft.wdm.ngc2.v1.ext.{MessageName}" See raft/wdm/ngc2/v1/ext for available extension types. - Custom types: Use reverse-DNS format (e.g., "com.acme.CustomType") - No @type: Generic/unstructured data where clients inspect fields directly Examples: WDM extension: { "@type": "raft.wdm.ngc2.v1.ext.FireUnit", "value": { "fs_system_type": ["FIRE_SUPPORT_SYSTEM_TYPE_FA_CANNON"], "echelon": "PLATOON" } } Custom type: { "@type": "com.acme.CustomSensorData", "value": { "sensor_id": "...", "readings": [...] } } No type identifier: { "notes": "Some custom data", "metadata": {...} }
status EntityStatus
Current lifecycle status of this entity. Controls whether the entity is actively tracked or disabled.
ttl Timestamp
Time-to-live: when set, entity expires at this time.
persist bool
Persist indefinitely: when true, entity never auto-expires.
symbology Symbology
Military symbology information (MIL-STD-2525C/D). Provides the raw SIDC string plus typed, structured access to all 2525C symbol modifiers. Populate when symbology data is available. Applicable to all entity types including tactical graphics, FSCMs, and control measures that carry SIDCs without requiring an assessment.
shape SpatialGeometry
Structured geometric shape for spatial representation. Typed alternative to the WKT `geometry` string field for programmatic access to shape data without string parsing. Populate either this field or `geometry`, not both. For simple point entities, use `location` instead. Examples: area of operations boundary, route, engagement area, uncertainty ellipse, sensor coverage footprint.
reconciliation ReconciliationMetadata
Reconciliation engine decision metadata. Read-only; populated by the reconciliation engine on every upsert. Tracks which policy made the decision, what action was taken, and why. Replicates with the entity through the mesh, giving receiving nodes context on how the entity was reconciled at the originating node.
track_info TrackInfo
Track quality and measurement metadata. Provides consumers with information about how this entity's position was derived and how much to trust it. Distinct from EntityAssessment, which captures the warfighter's tactical assessment (disposition, environment, confidence in identity).
transponder_codes TransponderCodes
IFF/transponder interrogation codes. Mode 1-5 and Mode S codes from IFF interrogation. Applicable to air, surface, and ground entities with transponders.
priority PriorityTier
QoS priority tier assigned by the platform. Used by the mesh for routing and replication prioritization. Read-only; assigned by the platform. Any client-provided value is ignored.
correlation CorrelationState
Correlation state linking this entity to a correlation set. A correlation set groups entities representing the same real-world object. Each entity carries its own set_id and role. There are no cross-entity references. Read-only on this message; managed exclusively via the dedicated correlation API, which provides atomic multi-entity updates. Any value provided on an entity upsert is ignored. When unpopulated, the entity is uncorrelated (standalone track).
decorrelations Decorrelation repeated
Decorrelation records for entities explicitly excluded from correlation with this entity. An entity can be correlated (via correlation field) and decorrelated (via this list) simultaneously, as long as the targets are disjoint. Automated algorithms must check this list before proposing re-correlation. Manual decorrelations block automated re-correlation of the same pair. Capped at 25 records. The correlation service rejects a decorrelation request that would exceed this limit; callers must evict stale records before adding new ones. Read-only on this message; managed exclusively via the dedicated correlation API. Any value provided on an entity upsert is ignored.
sensors Sensor repeated
Sensors mounted on this entity. Each entry groups one or more fields of view under a named sensor. Populate for entities carrying directed sensors (cameras, radars, sonars) where the coverage area is operationally relevant.
expendables Expendables
Fuel, ordnance, and other expendables carried by the entity. Domain-agnostic: applicable to aircraft, ground vehicles, ships, and any other entity that carries fuel or munitions.
LabelsEntry message
Hide 2 properties
key string
value string
EntityAssessment message
Warfighter's tactical assessment of this entity. IMPORTANT: This is ASSESSED affiliation, not ground truth. The actual identity may differ. Drives MIL-STD-2525 symbology and ROE.
Hide 4 properties
disposition Disposition
Friend/hostile/neutral/unknown determination.
environment Environment
Operating domain (air, surface, subsurface, etc.).
nationality string
Country of allegiance (ISO 3166-1 alpha-3: USA, GBR, CHN).
confidence_level double optional
Confidence in this assessment (0.0 to 1.0).
EntityFlags message
Operational flags for data segregation.
Hide 3 properties
is_simulated bool
True if entity is computer-generated (not from real sensors).
is_exercise bool
True if entity is part of an exercise (real or simulated).
is_taskable bool
True if entity can receive tasks.
EntityTypeInfo message
Domain-specific attributes. Populate the relevant component based on entity domain.
Hide 5 properties
maritime MaritimeInfo
aviation AviationInfo
ground GroundInfo
orbital OrbitalInfo
signal SignalInfo
ErrorEllipse message
Uncertainty expressed as an error ellipse. Captures sensor-reported error bounds without requiring conversion to a covariance matrix.
Hide 4 properties
semi_major_axis_meters double optional
Semi-major axis length in meters (the longer radius).
semi_minor_axis_meters double optional
Semi-minor axis length in meters (the shorter radius).
orientation_degrees double optional
Orientation of the semi-major axis in degrees clockwise from true north. Range: 0.0 to 180.0 (symmetric across the semi-minor axis).
confidence double optional
Probability that the true value lies within this ellipse. Range: 0.0 to 1.0. Omit when the confidence level is unknown.
Expendables message
Fuel, ordnance, and gun ammunition state. Domain-agnostic: applicable to aircraft, ground vehicles, ships, and any other entity that carries fuel or munitions.
Hide 3 properties
fuel FuelState repeated
Current fuel state. Multiple entries for platforms with more than one fuel type (e.g., JP-8 + diesel on a naval vessel).
ordnance Ordnance repeated
Expendable ordnance carried by the entity. Weapons, countermeasures, and other deployable stores.
guns GunState repeated
Onboard gun ammunition state. Multiple entries for platforms with more than one gun system.
FieldOfView message
Field of view (FOV) for a sensor. Describes a 3D viewing volume defined as an angular cone with optional range bounds. Supports both symmetric (circular) and asymmetric (rectangular) apertures. The cone is oriented relative to the entity's body frame using an Orientation message (heading, pitch, roll). When the parent entity's location.orientation is also populated, consumers can compose the two to derive the absolute look direction in world coordinates. ## 3D Cone The 3D viewing volume is defined by: - look_orientation: direction the boresight points (body-frame) - horizontal_fov_degrees: total azimuth span of the cone - vertical_fov_degrees: total elevation span of the cone - min_range_meters / max_range_meters: near and far range limits For a symmetric (circular) FOV, set horizontal and vertical spans equal. ## 2D Projected Footprint The ground_footprint field provides a pre-computed 2D projection of the viewing volume onto the terrain surface. This is a Polygon because terrain intersection of a cone generally produces a quadrilateral or irregular shape, not a simple circle or ellipse. Producers that have access to a terrain model should populate this field. Consumers without terrain data can use it directly for map rendering without recomputing the projection.
Hide 6 properties
look_orientation Orientation
Boresight direction in the entity's body frame. heading_degrees: azimuth offset from the entity's nose (0 = forward, 90 = starboard). Range: 0.0 to 360.0. pitch_degrees: elevation offset from the entity's horizontal plane. Negative = looking down, positive = looking up. Range: -90.0 to +90.0. roll_degrees: rotation about the boresight axis. Range: -180.0 to +180.0.
horizontal_fov_degrees double optional
Total horizontal (azimuth) angular extent of the FOV in degrees. The cone spans +/- half this value from the boresight azimuth. Range: >0.0 to 360.0. Example: 12.5 for a narrow EO camera, 120.0 for a wide-angle sensor.
vertical_fov_degrees double optional
Total vertical (elevation) angular extent of the FOV in degrees. The cone spans +/- half this value from the boresight elevation. Range: >0.0 to 180.0. Example: 9.4 for a narrow EO camera.
min_range_meters double optional
Minimum range in meters. Objects closer than this are outside the useful range. When unset, there is no minimum range constraint.
max_range_meters double optional
Maximum range in meters. Objects beyond this are outside the useful range. When unset, range is unbounded or unknown.
ground_footprint Polygon
Pre-computed 2D ground projection of the viewing volume. The polygon represents the intersection of the 3D viewing cone with the terrain surface. Producers with terrain models should populate this to spare consumers from recomputing the projection. Typically a quadrilateral (4 vertices + closing point) but may have more vertices when terrain is uneven.
FuelState message
Current fuel state for a single fuel type.
Hide 3 properties
fuel_type string
Fuel type or designation (e.g., "JP-8", "F-76", "AVGAS").
quantity_kg double optional
Current fuel quantity in kilograms.
capacity_kg double optional
Maximum fuel capacity in kilograms.
GroundInfo message
Ground domain attributes.
Hide 4 properties
platform_type string
Platform type (e.g., "T-72", "HMMWV", "dismount").
movement MovementStatus
Current movement state.
terrain TerrainType
Terrain type at entity location.
cover CoverStatus
Cover and concealment status.
GunState message
Onboard gun ammunition state.
Hide 3 properties
system string
Gun system identifier (e.g., "M61A2", "GAU-8/A", "Mk 45 Mod 4").
round_type string
Type of rounds loaded (e.g., "20MM PGU-28", "30MM PGU-13 HEI").
rounds_remaining uint32
Rounds remaining.
Identity message
External system identifier. Enables correlation across systems (AIS, ADS-B, Link-16, etc.).
Hide 2 properties
system string
Source system name (e.g., "ais", "adsb", "link16", "gccs-j").
identifier string
Identifier value from that system.
LineOfBearing message
Hide 6 properties
azimuth_degrees double optional
Azimuth in degrees from True North. Range: 0.0 to 360.0
azimuth_sigma_degrees double optional
Uncertainty (1 Standard Deviation) in degrees.
elevation_degrees double optional
Elevation angle in degrees from the horizontal plane. Positive values indicate above horizon, negative below. Range: -90.0 to 90.0
elevation_sigma_degrees double optional
Elevation uncertainty (1 Standard Deviation) in degrees.
distance_meters double optional
Estimated distance to the signal source in meters.
distance_sigma_meters double optional
Distance uncertainty (1 Standard Deviation) in meters.
LinearRing message
A closed ring of positions forming a polygon boundary. The first and last positions must be identical to close the ring. Must contain at least 4 positions (3 distinct vertices + closing point). Winding order follows GeoJSON convention: - Exterior rings: counter-clockwise. - Interior rings (holes): clockwise.
Hide 1 properties
positions Position repeated
Ordered positions forming the closed ring.
MaritimeInfo message
Maritime domain attributes. Primarily from AIS.
Hide 11 properties
vessel_type VesselType
Vessel classification.
imo_number string
IMO ship identification number (7 digits).
mmsi string
Maritime Mobile Service Identity (9 digits).
maritime_callsign string
Radio callsign.
flag_state string
Flag state (ISO 3166-1 alpha-3).
destination string
Destination port or area.
pennant_number string
Pennant number (pendant number) (hull number) for naval vessels. Official identifier assigned by naval authorities (e.g., "DDG-51", "CVN-68").
nav_status NavigationStatus
AIS navigation status.
draft_meters double optional
Current draft in meters.
cargo_type string
Cargo type description.
sconum string
Ship Control Number (SCONUM) see references: https://apps.dtic.mil/sti/tr/pdf/ADA562336.pdf https://niem.github.io/model/4.0/m/VesselSCONUMText/index.html
Mode5 message
Mode 5 IFF interrogation data.
Hide 3 properties
response IFFResponse
Interrogation response status.
code uint32 optional
Mode 5 code.
platform_id uint32 optional
Platform identification number.
Motion message
Velocity and acceleration in the local East-North-Up (ENU) frame. ENU is a local tangent plane coordinate system: East: positive toward geographic east North: positive toward geographic north Up: positive away from Earth center (perpendicular to ellipsoid)
Hide 4 properties
velocity_enu_mps Vector3
Velocity components (m/s). x=East, y=North, z=Up (positive = climbing).
acceleration_enu_mps2 Vector3
Acceleration components (m/s²). Non-zero values indicate maneuvering.
speed_mps double optional
Speed over ground (m/s). Horizontal magnitude: sqrt(east² + north²).
velocity_covariance CovarianceMatrix3
Velocity covariance in the local ENU frame (m/s)^2. Upper triangle of the 3x3 symmetric covariance matrix. Indicates how uncertain the velocity estimate is; used for dead-reckoning quality and distinguishing stable from noisy tracks.
Ontology message
Semantic classification of the entity. Combines operational typing with extensible ontology references. The `category` enum provides a fixed operational classification grounded in BFO (Basic Formal Ontology) and CCO (Common Core Ontologies), while `refs` allows ontologists to supply formal type URIs from any ontology (BFO, CCO, DICO, domain-specific, etc.) without schema changes. This supports DNI/DIA mandates for BFO/CCO alignment while remaining ontology-agnostic at the schema level. CCO Alignment Notes: - Entity.name maps to cco:designated_by -> cco:DesignativeName - Entity.identities maps to cco:designated_by -> cco:CodeIdentifier - Entity.description maps to cco:described_by -> cco:DescriptiveInformationContentEntity - Entity.location maps to bfo:located_in -> cco:GeospatialRegion Example ontology_refs: "bfo:IndependentContinuant" "cco:Aircraft" "cco:MilitaryOrganization" "mil:APP-6D/SFGPUCIZ---"
Hide 3 properties
type string
Specific type name (platform designation or unit type). The authoritative designator for this entity type per DOD/NATO standards. Examples: "F-35A Lightning II", "DDG-51 Arleigh Burke", "T-72B3", "Infantry Battalion", "SA-21 Growler"
category EntityCategory
Operational entity category. What kind of thing is this from a warfighting perspective? Each category is grounded in BFO/CCO upper ontology.
refs string repeated
Formal ontology type references (URIs or CURIEs). Allows ontologists to map entities to external ontologies such as BFO, CCO, DICO, or domain-specific vocabularies. Format: prefix:LocalName or full URI Common prefixes: bfo: http://purl.obolibrary.org/obo/ cco: http://www.ontologyrepository.com/CommonCoreOntologies/ mil: (MIL-STD-2525D symbol codes) Examples: "bfo:IndependentContinuant" "cco:GroundVehicle" "cco:MilitaryOrganization"
OrbitalInfo message
Hide 6 properties
object_id string
The ID of the on-orbit object (ex. satellite number)
sat_cat string
Satellite Catalog number, if applicable.
object_type string
The type of object (active satellite, inactive satellite, debris, natural object)
operator string
Current operator of this orbital object, if applicable.
origin string
Country or organization of origin, if known.
launch_date Timestamp
Timestamp when this object was launched.
OrbitalMotion message
Motion fields that generally match a Two-Line Element set.
Hide 10 properties
epoch Timestamp
Epoch of this kinematic measurement.
mean_mot_dot double
First derivative of mean motion.
mean_mot_ddot double
Second derivative of mean motion.
b_star double
Drag/radiation pressure coefficient.
inclination double
Orbital inclination in degrees. Range: 0.0 to 180.0 0° = equatorial, 90° = polar, >90° = retrograde Angle between orbital plane and Earth's equatorial plane.
raan double
Right Ascension of Ascending Node (RAAN) in degrees. Range: 0.0 to 360.0 Celestial longitude where orbit crosses equatorial plane northbound. Measured eastward from vernal equinox.
eccentricity double
Orbital eccentricity (dimensionless). Range: 0.0 (circular) to <1.0 (elliptical) Defines the shape of the orbit. 0 = perfect circle, approaching 1 = highly elliptical.
arg_perigee double
Argument of perigee in degrees. Range: 0.0 to 360.0 Angle from ascending node to perigee (closest approach point). Defines orbital ellipse orientation within the orbital plane.
mean_anomaly double
Mean anomaly in degrees. Range: 0.0 to 360.0 Angular position of satellite along orbit at epoch time. 0° = perigee, 180° = apogee.
rev_num double
Revolution number at epoch. Total number of complete orbits since launch. Increments by 1 each time satellite crosses ascending node.
Ordnance message
A single expendable ordnance type carried by the entity. Covers weapons (missiles, bombs, torpedoes), countermeasures (flares, chaff, decoys), and other deployable stores (sonobuoys).
Hide 3 properties
type string
Designator (e.g., "AIM-120C", "MJU-27", "SSQ-62").
name string
Human-readable name (e.g., "AMRAAM", "Flare", "Sonobuoy").
quantity uint32
Number of units currently carried.
Orientation message
Orientation (attitude) in 3D space using Euler angles. Convention: Tait-Bryan angles (aerospace sequence). Order: Yaw (heading) -> Pitch -> Roll
Hide 3 properties
heading_degrees double optional
Heading (yaw) in degrees from true north. Range: 0.0 to 360.0 (clockwise from north) Aircraft: direction nose is pointing Ships: direction bow is pointing
pitch_degrees double optional
Pitch angle in degrees. Positive: nose/bow up Negative: nose/bow down Range: -90.0 to +90.0
roll_degrees double optional
Roll angle in degrees. Positive: right wing/starboard down Negative: left wing/port down Range: -180.0 to +180.0
PhysicalDimensions message
Physical size and mass of the entity. Used for recognition, classification, and logistics planning.
Hide 4 properties
length_meters double optional
Overall length (bow to stern, nose to tail).
width_meters double optional
Overall width (beam for ships, wingspan for aircraft).
height_meters double optional
Overall height (keel to mast, wheels to tail).
weight_kg double optional
Mass (displacement for ships, MTOW for aircraft).
Point message
A single geographic point. GeoJSON equivalent: Point. See https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.2 Examples: observation post, waypoint, point target.
Hide 1 properties
position Position
Geographic position of the point.
Polygon message
A closed polygon defined by an exterior ring and optional interior holes. GeoJSON equivalent: Polygon (only canonical representations accepted). See https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.6 Follows the right-hand rule: exterior rings are counter-clockwise, interior rings (holes) are clockwise. Examples: area of operations (AO), engagement area, named area of interest (NAI), restricted operations zone (ROZ).
Hide 2 properties
rings LinearRing repeated
Rings defining the polygon boundary. rings[0]: exterior boundary (required). rings[1..N]: interior holes (optional).
height_meters double
Optional uniform height above base positions to extrude in meters. Creates a prism from the 2D polygon. When 0/unset, polygon is 2D. Strictly GeoJSON-compatible polygons will not have this set.
Polyline message
An ordered sequence of positions forming a line or path. GeoJSON equivalent: LineString. See https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.4 Must contain at least 2 positions. Examples: route, main supply route (MSR), phase line, flight path.
Hide 1 properties
positions Position repeated
Ordered sequence of positions defining the line.
Position message
Geographic position in WGS-84 coordinates. Supports multiple altitude references for interoperability: HAE: GPS-native, precision applications MSL: Aviation (flight levels, altimeters) AGL: Low-altitude ops, terrain following Depth: Subsurface operations
Hide 7 properties
latitude_degrees double
WGS-84 geodetic latitude in decimal degrees. Range: -90.0 (South Pole) to +90.0 (North Pole) Precision: 7 decimal places = ~1cm accuracy
longitude_degrees double
WGS-84 geodetic longitude in decimal degrees. Range: -180.0 (West) to +180.0 (East) Precision: 7 decimal places = ~1cm at equator
altitude_hae_meters double optional
Height Above Ellipsoid (HAE) in meters. WGS-84 reference ellipsoid. Positive above ellipsoid; negative below. Preferred for precision applications.
altitude_agl_meters double optional
Altitude Above Ground Level (AGL) in meters. Requires terrain elevation database. Common for low-altitude flight operations.
altitude_msl_meters double optional
Mean Sea Level (MSL) altitude in meters. Reference: geoid (mean sea level surface) Common in aviation (flight levels) but less precise.
depth_meters double optional
Depth below surface in meters (for subsurface). Positive values = depth below surface. Derived from pressure; affected by water density.
mgrs string
Military Grid Reference System coordinate. Format: Grid Zone + 100km Square + Easting + Northing Example: "4QFJ 12345 67890" (10-digit = 1m precision)
Rectangle message
A rectangle defined by two centerline points and a width. The two points define the centerline (long axis) of the rectangle. The width extends perpendicular to that line on both sides. Orientation is implicit from the bearing of point_1 to point_2. ┌─────────────────────┐ │ ^ │ │ │ │ point_1 width point_2 │ │ │ │ v │ └─────────────────────┘ Structurally guarantees a valid rectangle. Examples: kill box, fire support area, restricted fire area (RFA), no-fire area (NFA), free-fire area (FFA).
Hide 4 properties
point_1 Position
First endpoint of the rectangle centerline.
point_2 Position
Second endpoint of the rectangle centerline.
width_meters double
Total width in meters, extending perpendicular to the centerline. Half the width extends to each side. Must be positive.
height_meters double
Optional height above the centerline to extrude in meters. A non-zero value creates a rectangular prism.
ScanBehavior message
Scanning behavior of a signal source.
Hide 2 properties
scan_type ScanType
Type of scan pattern.
scan_period_seconds double optional
Scan period in seconds.
Sensor message
A sensor mounted on an entity. Groups one or more fields of view under a named, typed sensor. Examples: "search radar", "spherical sonar array", "EO turret".
Hide 3 properties
name string
Human-readable name for this sensor. Examples: "search radar", "spherical sonar array", "EO turret".
type string
Sensor type or classification. Examples: "radar", "sonar", "eo", "ir", "lidar", "sar".
fields_of_view FieldOfView repeated
Fields of view for this sensor.
SidcModifiers message
Typed MIL-STD-2525C symbol modifier fields. Each field corresponds to a modifier defined in MIL-STD-2525C, Appendix A, Table XIV. The field comment includes the 2525C modifier letter code in parentheses. All fields are optional; populate only what is known and relevant. Reference: MIL-STD-2525C, Appendix A, Table XIV.
Hide 28 properties
quantity int32
(C) Quantity of equipment or personnel represented by the symbol.
reinforced_reduced string
(F) Reinforced or reduced status. Values: "R" (reinforced), "D" (reduced), "RD" (reinforced and reduced).
staff_comments string
(G) Staff comments. Free-form text annotation (max 20 chars per spec).
additional_info string
(H) Additional information. Free-form text (max 20 chars per spec).
additional_info_2 string
(H1) Additional information, second line.
additional_info_3 string
(H2) Additional information, third line.
evaluation_rating string
(J) Evaluation rating. Reliability and credibility indicator (2-character code per STANAG 2022).
combat_effectiveness string
(K) Combat effectiveness. Unit readiness or installation capability indicator (max 5 chars per spec).
signature_equipment string
(L) Signature equipment. Detectable electronic signature.
higher_formation string
(M) Higher formation. Parent unit or higher echelon designation (max 21 chars per spec).
iff_sif string
(P) IFF/SIF identification mode and code (max 5 chars per spec).
direction_of_movement double
(Q) Direction of movement in degrees from true north (0.0-360.0).
sigint_mobility string
(R2) SIGINT mobility indicator code.
unique_designation string
(T) Unique designation. Primary identifier for the symbol (max 21 chars per spec).
unique_designation_2 string
(T1) Unique designation, second line.
type string
(V) Type of equipment. Platform or equipment descriptor (max 24 chars per spec).
effective_time Timestamp
(W) Date-time group for effective time. Stored as a structured timestamp; render as DTG for display.
expiration_time Timestamp
(W1) Date-time group for expiration time. Stored as a structured timestamp; render as DTG for display.
altitude_depth double repeated
(X) Altitude or depth values in meters. Supports multiple values for multi-point tactical graphics.
location string
(Y) Location in any desired display format (max 19 chars per spec). Typically DMS, MGRS, or other coordinate representation.
speed SpeedModifier
(Z) Speed of the symbol. Structured as value + unit for clarity.
special_c2_headquarters string
(AA) Special C2 headquarters designation.
platform_type string
(AD) Platform type. ELNOT or CENOT notation for SIGINT symbols.
equipment_teardown_time double
(AE) Equipment teardown time in minutes.
common_identifier string
(AF) Common identifier. Common name for the equipment (e.g., "Hawk" for a Hawk SAM system).
distance double repeated
(AM) Distance in meters. Supports multiple values for radius, length, width of tactical graphics.
azimuth double repeated
(AN) Azimuth values in degrees from true north. Supports multiple values for tactical graphics with multiple orientation parameters.
engagement_bar string
(AO) Engagement bar. Target engagement status indicator.
SignalInfo message
Signal domain attributes. Core fields (frequency, RSSI, line of bearing) are sufficient for basic signal representation. Extended fields (SNR, pulse characteristics, scan behavior, emitter notations) support ELINT classification and EW-to-fires candidate scoring.
Hide 12 properties
frequency_hz double optional
Center frequency of the signal in Hz.
rssi_dbm double optional
Received Signal Strength Indicator (RSSI) in dBm.
line_of_bearing LineOfBearing
Measurement of direction towards the signal source.
snr_db double optional
Signal-to-noise ratio in dB.
pulse_width_seconds double optional
Pulse width in seconds.
pri_seconds double optional
Pulse repetition interval in seconds.
bandwidth_hz double optional
Signal bandwidth in Hz.
emitter_notations EmitterNotation repeated
Emitter notation identifiers with classification confidence. ELNOT or CENOT identifiers that classify the emitter.
scan ScanBehavior
Scanning behavior of the signal source.
modulation SignalModulation
Modulation type of the signal. Makes the signal class explicit rather than requiring consumers to infer it from which pulse fields are populated.
frequency_min_hz double optional
Minimum frequency in Hz for agile or hopping emitters. For fixed-frequency signals, this equals frequency_hz. Populate alongside frequency_hz (center) when the emitter hops or sweeps across a range.
frequency_max_hz double optional
Maximum frequency in Hz for agile or hopping emitters.
SpatialGeometry message
Structured geometric shape for spatial representation. Provides typed alternatives to the WKT-based Entity.geometry string field. Use for boundaries, coverage areas, routes, sensor footprints, and other non-point geometries. Exactly one shape type must be set. The shape defines the spatial extent of an entity: boundaries, coverage areas, routes, sensor footprints, and other non-point geometries. For simple point entities, use Entity.location instead. GeoJSON compatibility: - Point, Polyline, and Polygon map directly to GeoJSON Point, LineString, and Polygon types. - Circle and Ellipse have no GeoJSON equivalent but are common in military and geospatial applications.
Hide 6 properties
point Point
Single geographic point.
polyline Polyline
Ordered sequence of positions forming a line.
polygon Polygon
Closed area defined by one or more rings (exterior boundary + holes).
circle Circle
Circle defined by center point and radius.
ellipse Ellipse
Ellipse defined by center, semi-axes, and orientation.
rectangle Rectangle
Rectangle defined by two centerline points and a width.
SpatialLocation message
Geographic position and orientation of an entity. Combines where something is (position) with how it's oriented (attitude). Position uses WGS-84 datum with multiple altitude representations to support different operational contexts.
Hide 4 properties
position Position
Geographic position (lat/lon/alt).
orientation Orientation
Orientation (attitude) in 3D space. Aircraft: heading, pitch, roll. Ships: heading primarily. Ground vehicles: heading.
position_covariance CovarianceMatrix3
Position covariance in the local ENU frame (meters^2). Upper triangle of the 3x3 symmetric covariance matrix. Enables consumers to reason about position accuracy for engagement zones, correlation gating, and fires nomination.
position_error_ellipse ErrorEllipse
Source-reported positional error ellipse. Center is implied by the position field.
SpeedModifier message
Speed with explicit unit of measure. Used for the MIL-STD-2525C speed modifier (Z) where the unit system may vary by operational context.
Hide 2 properties
value double
Numeric speed value.
unit string
Unit of measure (e.g., "kt", "km/h", "m/s", "mph").
StateVector message
Hide 5 properties
epoch Timestamp
Epoch of this state vector.
reference_frame string
Ex. J2000.
position_km Vector3
X, Y, and Z position in kilometers, in the given reference frame.
velocity_kmps Vector3
X, Y, and Z velocity in km/2.
acceleration_kmps2 Vector3
X, Y, and Z acceleration in km/s^2.
Symbology message
Typed military symbology representation supporting MIL-STD-2525C/D. Provides both a raw SIDC string for interoperability and a decomposed, typed modifier structure for programmatic access. Consumers should prefer the typed modifiers when available; the raw sidc field serves as a canonical interchange format. Example (2525C friendly ground mechanized infantry): symbology { sidc: "SFGPUCIZ--*****" version: SIDC_VERSION_2525C modifiers { unique_designation: "1-87 IN" higher_formation: "3BCT" combat_effectiveness: "GREEN" } }
Hide 3 properties
sidc string
Raw Symbol Identification Code (SIDC) string. For 2525C: 15-character alphanumeric code. For 2525D: 20-character numeric code.
version SidcVersion
Version of the symbology standard this SIDC conforms to.
modifiers SidcModifiers
Typed 2525C modifier fields. Provides structured access to all standard symbol modifiers with appropriate data types for each field.
TargetingInfo message
Targeting and threat assessment data.
Hide 2 properties
is_hvt bool optional
Designated as High Value Target.
threat_level ThreatLevel
Assessed threat level.
TrackInfo message
Track quality and measurement metadata. Provides consumers with information about how this entity's position was derived and how much to trust it. Distinct from EntityAssessment, which captures the warfighter's tactical assessment (disposition, environment, confidence in identity).
Hide 5 properties
sensor_hits uint32 optional
Number of sensor detections that contributed to this track. Higher values generally indicate more reliable tracks.
last_measurement_time Timestamp
Timestamp of the most recent sensor measurement for this entity. Distinct from provenance.updated_at, which is when the source system last published. A track can be published (updated_at = now) based on a measurement from 30 seconds ago.
radar_cross_section_dbsm double optional
Radar cross section in dBsm. Helps with classification and indicates detectability.
object_count uint32 optional
Estimated number of objects represented by this entity. Used for formation tracking where a single track represents multiple objects (e.g., convoy, flight of aircraft).
track_quality uint32 optional
Track Quality (TQ) Representing the accuracy of the track position see references: https://apps.dtic.mil/sti/tr/pdf/ADA404334.pdf http://www.dodccrp.org/events/2000_CCRTS/html/pdf_papers/Track_1/030.pdf
TransponderCodes message
IFF/transponder interrogation data. Mode 1-5 and Mode S codes from IFF interrogation. Applicable to air, surface, and ground entities with transponders.
Hide 6 properties
mode_1 uint32 optional
Mode 1 code (military mission code, 5-bit).
mode_2 uint32 optional
Mode 2 code (military unit code, 12-bit).
mode_3a uint32 optional
Mode 3/A code (ATC assigned, 12-bit octal).
mode_4_response IFFResponse
Mode 4 interrogation response.
mode_5 Mode5
Mode 5 interrogation response and codes.
mode_s_address uint32 optional
Mode S ICAO address (24-bit).
Vector3 message
Generic 3D vector. For ENU velocity: x=East, y=North, z=Up. For ENU acceleration: same convention.
Hide 3 properties
x double
First component (East for ENU frame).
y double
Second component (North for ENU frame).
z double
Third component (Up for ENU frame).
CoverStatus enum
Cover and concealment status.
COVER_STATUS_UNSPECIFIED = 0
COVER_STATUS_EXPOSED = 1 Fully visible, no cover
COVER_STATUS_PARTIAL = 2 Some cover/concealment
COVER_STATUS_CONCEALED = 3 Hidden from view
COVER_STATUS_DUG_IN = 4 In prepared position
Disposition enum
Standard Identity per MIL-STD-2525D.
DISPOSITION_UNSPECIFIED = 0
DISPOSITION_PENDING = 1 Awaiting identification
DISPOSITION_UNKNOWN = 2 Cannot be determined
DISPOSITION_ASSUMED_FRIEND = 3 Assumed friendly (unconfirmed)
DISPOSITION_FRIEND = 4 Positively identified friendly
DISPOSITION_NEUTRAL = 5 Neither friend nor threat
DISPOSITION_SUSPECT = 6 Potentially hostile
DISPOSITION_HOSTILE = 7 Declared hostile per ROE
DISPOSITION_JOKER = 8 Friendly acting as hostile (exercise)
DISPOSITION_FAKER = 9 Hostile acting as friendly (exercise)
EmergencyStatus enum
Aircraft emergency status (from transponder).
EMERGENCY_STATUS_UNSPECIFIED = 0
EMERGENCY_STATUS_NONE = 1
EMERGENCY_STATUS_GENERAL = 2 Squawk 7700
EMERGENCY_STATUS_MEDICAL = 3
EMERGENCY_STATUS_FUEL = 4 Minimum fuel
EMERGENCY_STATUS_NO_COMM = 5 Squawk 7600
EMERGENCY_STATUS_HIJACK = 6 Squawk 7500
EmitterNotationType enum
Emitter notation classification system.
EMITTER_NOTATION_TYPE_UNSPECIFIED = 0
EMITTER_NOTATION_TYPE_ELNOT = 1 Electronic Intelligence Notation -- non-communications emitters (radars, navigation aids, electronic warfare systems).
EMITTER_NOTATION_TYPE_CENOT = 2 Communications Emitter Notation -- communications emitters (radios, data links, satellite uplinks).
EntityCategory enum
Operational entity categories grounded in BFO/CCO upper ontology. Each category maps to BFO (Basic Formal Ontology) and CCO (Common Core Ontologies) classes to ensure semantic interoperability across DOD, IC, and allied systems. Categories are designed for warfighting operations and align with Army FM 1-02, JP 3-0, and MIL-STD-2525D. BFO Continuant vs Occurrent: - Most categories are Continuants (exist fully at any point in time) - EVENT and SIGNAL are Occurrents (unfold over time)
ENTITY_CATEGORY_UNSPECIFIED = 0
ENTITY_CATEGORY_PLATFORM = 1 Individual vehicle, vessel, aircraft, or spacecraft. BFO: bfo:Object | CCO: cco:Vehicle, cco:Aircraft, cco:Watercraft Single trackable object with propulsion and identity. Examples: M1A2 Abrams, DDG-51, F-35A, UH-60 Black Hawk.
ENTITY_CATEGORY_UNIT = 2 Military or organizational unit. BFO: bfo:ObjectAggregate | CCO: cco:MilitaryOrganization Has command structure, composed of platforms/people. Examples: 1st Armored Division, 75th Ranger Regiment, enemy battalion.
ENTITY_CATEGORY_PERSON = 3 Individual human being. BFO: bfo:Object | CCO: cco:Person (subclass of cco:Agent) Examples: dismounted soldier, enemy combatant, high-value individual (HVI), enemy prisoner of war (EPW), detainee, foreign national.
ENTITY_CATEGORY_FACILITY = 4 Fixed structure or installation. BFO: bfo:Object | CCO: cco:Facility, cco:Airport, cco:Port Buildings, bases, point installations. Examples: forward operating base (FOB), command post, airfield, port.
ENTITY_CATEGORY_EQUIPMENT = 5 Non-self-propelled system or device. BFO: bfo:Object | CCO: cco:Artifact Sensors, weapons systems, deployable assets. Examples: radar system, artillery piece, communications relay, UGS.
ENTITY_CATEGORY_MUNITION = 6 Weapon or munition in flight. BFO: bfo:Object | CCO: cco:Munition, cco:Weapon Expendable, short-lived ordnance. Examples: Tomahawk cruise missile, JDAM, artillery round, torpedo.
ENTITY_CATEGORY_GROUP = 7 Ad-hoc collection treated as single operational entity. BFO: bfo:ObjectAggregate | CCO: cco:GroupOfAgents Temporary or tactical groupings without formal command structure. Examples: convoy, surface action group (SAG), strike package, cell.
ENTITY_CATEGORY_EVENT = 8 Transient occurrence at a location/time. BFO: bfo:Process | CCO: cco:Event, cco:ActOfMilitaryForce Occurrent (unfolds over time) rather than continuant. Examples: IED detonation, indirect fire event, SIGACT, airstrike.
ENTITY_CATEGORY_CONTROL_MEASURE = 9 Tactical graphic or control measure. BFO: bfo:Site | CCO: cco:GeospatialRegion Doctrinal graphics per FM 1-02/MIL-STD-2525. Examples: phase line, boundary, objective, engagement area, NAI.
ENTITY_CATEGORY_INFRASTRUCTURE = 10 Linear or distributed physical infrastructure. BFO: bfo:Object | CCO: cco:Infrastructure subclasses Distinct from FACILITY (point installations). Examples: bridge, dam, pipeline, power grid, main supply route (MSR).
ENTITY_CATEGORY_GEOPOLITICAL = 11 Geopolitical entity or territory. BFO: bfo:Site | CCO: cco:GeopoliticalEntity, cco:DomainOfACountry Sovereign or contested territories with political significance. Examples: nation-state, occupied territory, disputed border region.
ENTITY_CATEGORY_NATURAL_FEATURE = 12 Natural geographic feature. BFO: bfo:Site | CCO: cco:GeographicFeature Terrain features used for reference or with operational significance. Examples: mountain range, river, strait, key terrain.
ENTITY_CATEGORY_SIGNAL = 13 Electromagnetic emission or signal. BFO: bfo:Process | CCO: cco:Signal SIGINT/ELINT entity prior to platform correlation. Examples: radar emission, radio transmission, electronic beacon.
ENTITY_CATEGORY_ORGANIZATION = 14 Non-military organization or network. BFO: bfo:ObjectAggregate | CCO: cco:Organization Entities with organizational structure but not military units. Examples: government ministry, threat network, paramilitary group, NGO.
EntityStatus enum
Lifecycle status of an entity in the system - tracks operational state. Entities start in ACTIVE. Use INACTIVE for disabled entities.
ENTITY_STATUS_UNSPECIFIED = 0
ENTITY_STATUS_ACTIVE = 1 Entity is operational and being tracked.
ENTITY_STATUS_INACTIVE = 2 Entity exists but is not actively tracked.
ENTITY_STATUS_DELETED = 3 Entity has been removed or is no longer relevant.
Environment enum
Operating environment / domain.
ENVIRONMENT_UNSPECIFIED = 0
ENVIRONMENT_SPACE = 1 Exoatmospheric
ENVIRONMENT_HIGH_ALTITUDE = 2 Above 50,000 ft
ENVIRONMENT_MEDIUM_ALTITUDE = 3 10,000-50,000 ft
ENVIRONMENT_LOW_ALTITUDE = 4 Below 10,000 ft
ENVIRONMENT_SURFACE = 5 Ground or sea surface
ENVIRONMENT_SUBSURFACE = 6 Underwater
ENVIRONMENT_UNDERGROUND = 7 Tunnels, bunkers
IFFResponse enum
IFF interrogation response status.
IFF_RESPONSE_UNSPECIFIED = 0
IFF_RESPONSE_CORRECT = 1
IFF_RESPONSE_INCORRECT = 2
IFF_RESPONSE_NO_RESPONSE = 3
MovementStatus enum
Ground entity movement state.
MOVEMENT_STATUS_UNSPECIFIED = 0
MOVEMENT_STATUS_STATIONARY = 1 Not moving, engine state unknown
MOVEMENT_STATUS_MOVING = 2 In motion
MOVEMENT_STATUS_HALTED = 3 Temporarily stopped
NavigationStatus enum
AIS navigation status.
NAVIGATION_STATUS_UNSPECIFIED = 0
NAVIGATION_STATUS_UNDERWAY = 1 Using engine
NAVIGATION_STATUS_AT_ANCHOR = 2
NAVIGATION_STATUS_MOORED = 3
NAVIGATION_STATUS_NOT_UNDER_COMMAND = 4 Unable to maneuver
NAVIGATION_STATUS_RESTRICTED = 5 Restricted maneuverability
NAVIGATION_STATUS_AGROUND = 6
NAVIGATION_STATUS_FISHING = 7 Engaged in fishing
PriorityTier enum
QoS priority tier for entity replication and routing.
PRIORITY_TIER_UNSPECIFIED = 0
PRIORITY_TIER_LOW = 1
PRIORITY_TIER_MEDIUM = 2
PRIORITY_TIER_HIGH = 3
PRIORITY_TIER_CRITICAL = 4
ScanType enum
Radar/emitter scan pattern type.
SCAN_TYPE_UNSPECIFIED = 0
SCAN_TYPE_CIRCULAR = 1
SCAN_TYPE_SECTOR = 2
SCAN_TYPE_CONICAL = 3
SCAN_TYPE_RASTER = 4
SCAN_TYPE_AGILE_BEAM = 5
SCAN_TYPE_NON_SCANNING = 6
SCAN_TYPE_IRREGULAR = 7
SidcVersion enum
Version of the MIL-STD-2525 symbology standard.
SIDC_VERSION_UNSPECIFIED = 0 Version not specified or unknown.
SIDC_VERSION_2525C = 1 MIL-STD-2525C (15-character alphanumeric SIDC).
SIDC_VERSION_2525D = 2 MIL-STD-2525D (20-character numeric SIDC).
SIDC_VERSION_CUSTOM = 3 Custom or non-standard symbology format.
SignalModulation enum
Signal modulation type.
SIGNAL_MODULATION_UNSPECIFIED = 0
SIGNAL_MODULATION_PULSE = 1 Pulsed signal (has pulse width and PRI).
SIGNAL_MODULATION_CW = 2 Continuous wave (no pulse modulation).
SIGNAL_MODULATION_CHIRP = 3 Linear frequency modulated (chirp) pulse.
SIGNAL_MODULATION_FREQUENCY_HOPPED = 4 Frequency hopping (uses frequency_min_hz / frequency_max_hz range).
SIGNAL_MODULATION_PHASE_CODED = 5 Phase-coded pulse (Barker codes, polyphase).
TerrainType enum
Terrain classification at entity location.
TERRAIN_TYPE_UNSPECIFIED = 0
TERRAIN_TYPE_URBAN = 1
TERRAIN_TYPE_RURAL = 2
TERRAIN_TYPE_FOREST = 3
TERRAIN_TYPE_DESERT = 4
TERRAIN_TYPE_MOUNTAIN = 5
ThreatLevel enum
Threat severity level (ex: MIDNIGHT).
THREAT_LEVEL_UNSPECIFIED = 0
THREAT_LEVEL_NONE = 1
THREAT_LEVEL_LOW = 2
THREAT_LEVEL_MEDIUM = 3
THREAT_LEVEL_HIGH = 4
THREAT_LEVEL_CRITICAL = 5
VerticalMode enum
Aircraft vertical flight mode.
VERTICAL_MODE_UNSPECIFIED = 0
VERTICAL_MODE_LEVEL = 1
VERTICAL_MODE_CLIMBING = 2
VERTICAL_MODE_DESCENDING = 3
VesselType enum
Vessel type classification for Maritime Domain Awareness (MDA). Aligns with AIS vessel types to enable tracking of commercial traffic that may affect naval operations or indicate anomalous behavior.
VESSEL_TYPE_UNSPECIFIED = 0
VESSEL_TYPE_CARGO = 1 Merchant cargo vessel
VESSEL_TYPE_TANKER = 2 Oil/chemical/gas tanker
VESSEL_TYPE_PASSENGER = 3 Cruise, ferry, transport
VESSEL_TYPE_FISHING = 4 Commercial fishing vessel
VESSEL_TYPE_MILITARY = 5 Naval combatant or auxiliary
VESSEL_TYPE_TUG = 6 Tug, tow, or offshore support
VESSEL_TYPE_RECREATIONAL = 7 Small craft, yacht (MDA tracking)
VESSEL_TYPE_SAR = 8 Search and Rescue
WakeCategory enum
ICAO wake turbulence category.
WAKE_CATEGORY_UNSPECIFIED = 0
WAKE_CATEGORY_LIGHT = 1 < 7,000 kg
WAKE_CATEGORY_MEDIUM = 2 7,000 - 136,000 kg
WAKE_CATEGORY_HEAVY = 3 > 136,000 kg
WAKE_CATEGORY_SUPER = 4 C-5M Galaxy, An-124

## raft/wdm/ngc2/v1/provenance.proto

Provenance message
Data lineage and source attribution for trust assessment. Provenance tracks where information originated, enabling consumers to assess reliability and make informed fusion decisions. Critical for intelligence analysis where source credibility affects confidence. Loosely modeled on W3C PROV-DM (https://www.w3.org/TR/prov-dm/), but intentionally simplified so it can be attached cheaply to every record.
Hide 7 properties
id string
Unique identifier for this provenance record. Enables tracking when same source provides multiple updates.
name string
Human-readable name of the originating source. Examples: "USS Roosevelt CIC", "SIGINT Station Alpha", "National Ground Intelligence Center", "UAV-042 EO/IR"
description string
Additional context about the source or collection method. May include sensor mode, collection geometry, or analyst notes.
updated_at Timestamp
Timestamp when this information was produced or last updated at the source. Distinct from message transmission time.
request_id string
Server-generated UUID for this specific publish/update request. Used for deterministic LWW (Last-Writer-Wins) conflict resolution when updated_at timestamps are equal. This field is read-only and automatically populated by the server on each request.
source_node_id string
UUID of the RDP (Raft Data Platform) node where this request originated. Used for tracking data flow through the distributed system and assists in conflict resolution and debugging. This field is read-only and automatically populated by the server.
producer string
Identifier of the component that emitted or last transformed this record. Distinct from `name`, which identifies the operational source (a person, unit, or sensor); `producer` identifies the technical thing, e.g., a service, algorithm, model, plugin, agent, or client application, that handled the record immediately before publication. Convention: be as precise as possible. Examples: - "my-tracker-v1.2" - "some-fusion-algorithm-v3" - "example-cot-plugin-0.4" - "yolo-v8-object-detection" - "acme-c2-client-2026.1" For records created entirely by hand (e.g., an operator typing in a client), the producer should be client application itself (e.g., the user-agent), and not unset. This is NOT the place for the operational source identity; use `id` and `name` for that.

## raft/wdm/ngc2/v1/reconciliation.proto

ReconciliationMetadata message
Reconciliation engine decision metadata. Stamped on every entity that passes through the reconciliation engine. Tracks which policy made the decision, what action was taken, and why. Read-only; populated by the reconciliation engine on every upsert.
Hide 3 properties
policy_id string
Identifier of the reconciliation policy that produced this entity state. Examples: "lww", "priority_rules", "custom:/path/to/policy".
action ReconciliationAction
The reconciliation action that was applied. For entities visible after reconciliation, this is always ACCEPT.
reason string
Human-readable explanation of the reconciliation decision. Examples: "newer timestamp", "SIGINT (priority 300) > COP_FUSED (priority 100)".
ReconciliationAction enum
Action taken by the reconciliation engine on an entity upsert.
RECONCILIATION_ACTION_UNSPECIFIED = 0
RECONCILIATION_ACTION_ACCEPT = 1 Incoming entity accepted and written.
RECONCILIATION_ACTION_REJECT = 2 Incoming entity rejected; existing entity kept.

## raft/wdm/ngc2/v1/security.proto

SecurityComponents message
SecurityComponents contains the structured classification components
Hide 10 properties
classification string
ownerProducer string repeated
disseminationControls string repeated
releasableTo string repeated
sciControls string repeated
sapControls string repeated
nonIcMarkings string repeated
programNicknames string repeated
fgiSourceOpen string repeated
fgiSourceProtected string repeated
SecurityMarking message
SecurityMarking represents normalized classification marking Compatible with df-classification ISM format
Hide 2 properties
raw string
components SecurityComponents

## raft/wdm/ngc2/v1/task.proto

Principal message
Reference to a person, unit, or system that can request, authorize, or execute tasks.
Hide 2 properties
id string
Unique identifier of the principal.
type PrincipalType
Type of principal.
Task message
A directed action to be performed by a principal (e.g., person, unit, or system). Tasks represent the command and control (C2) layer: orders, requests, and assignments that drive operations. They connect requestors (who wants something done) with executors (who will do it). IMPORTANT: Tasks are immutable after creation except for state transitions. If task details need to change, cancel the existing task (set state to TASK_STATE_CANCELLED) and create a new one with the correct information. Examples: ISR collection request, fire mission, movement order, logistics request, sensor tasking.
Hide 13 properties
id string
Unique identifier (UUID).
__security__ SecurityMarking
Classification and handling caveats.
name string
Short name for the task.
description string
Detailed description of what is to be done.
type string
Task type identifier. Examples: "isr_collection", "fire_mission", "movement", "resupply".
state TaskState
Current state in the task lifecycle.
priority TaskPriority
Execution priority.
details Struct
Task-specific parameters as structured data. Use this field when task-specific information isn't represented in the base Task fields. Clients can include domain-specific parameters based on their task type (e.g., fire mission parameters, ISR sensor configurations, route waypoints). TYPE IDENTIFIER CONVENTION: For structured data, include an "@type" field to identify the schema type. This helps clients determine which protobuf message to unmarshal the data into. Type URL formats: - WDM extensions: "raft.wdm.ngc2.v1.ext.{MessageName}" See raft/wdm/ngc2/v1/ext for available extension types. - Custom types: Use reverse-DNS format (e.g., "com.acme.CustomTaskData") - No @type: Generic/unstructured data where clients inspect fields directly Examples: WDM extension (Fire mission): { "@type": "raft.wdm.ngc2.v1.ext.Fire", "fire": { "target_location": {...}, "rounds": 6, "shell_type": "HE" } } Custom type (ISR): { "@type": "com.acme.ISRTaskData", "isr": { "target_id": "...", "sensor_type": "EO", "duration_min": 30 } } No type identifier: { "target_id": "...", "sensor_type": "EO" }
assigned_to Principal
Principal responsible for executing this task.
requested_by Principal
Principal that originated the task request.
authorized_by Principal
Principal that approved the task for execution. May differ from requestor (e.g., fires require commander approval).
provenance Provenance
Data lineage and source attribution.
progress TaskProgress
Current execution progress. Updated via UpdateTaskState. Only meaningful in active states (IN_PROGRESS, PAUSED).
TaskProgress message
Execution progress within a task's current state.
Hide 4 properties
phase string
Execution phase within the current state. Free-form string defined by the client. The server treats this value as opaque. Convention: UPPER_SNAKE_CASE (e.g., "SHOT", "SPLASH", "ON_STATION").
status_message string
Human-readable status message describing current progress.
metadata Struct
Additional structured progress data. Follows the same convention as Task.details.
updated_at Timestamp
Server-assigned timestamp of when this progress was recorded. Read-only; any client-provided value is overwritten by the server.
PrincipalType enum
Classification of principal types.
PRINCIPAL_TYPE_UNSPECIFIED = 0
PRINCIPAL_TYPE_ENTITY = 1 Reference to an Entity in the WDM (unit, platform, person).
PRINCIPAL_TYPE_SYSTEM = 2 External system or service.
PRINCIPAL_TYPE_USER = 3 Human user account.
TaskPriority enum
Task execution priority. Aligns with military message precedence levels. Higher priority tasks should preempt lower priority work.
TASK_PRIORITY_UNSPECIFIED = 0
TASK_PRIORITY_LOW = 1 Routine - normal operations, no time constraint.
TASK_PRIORITY_MEDIUM = 2 Priority - important, expedite handling.
TASK_PRIORITY_HIGH = 3 Immediate - urgent, immediate action required.
TASK_PRIORITY_CRITICAL = 4 Flash - critical, highest precedence.
TaskState enum
Task lifecycle states. State transitions follow a general flow: DRAFT -> PENDING -> APPROVED -> ASSIGNED -> ACKNOWLEDGED -> PLANNED -> IN_PROGRESS -> COMPLETED Terminal states (final, cannot be changed): - COMPLETED: Successfully finished - FAILED: Execution failed - CANCELLED: Cancelled/deleted (the deletion mechanism for tasks) - REJECTED: Refused by assignee
TASK_STATE_UNSPECIFIED = 0
TASK_STATE_DRAFT = 1 Being composed - not yet submitted.
TASK_STATE_PENDING = 2 Submitted, awaiting approval.
TASK_STATE_APPROVED = 3 Approved by authority, not yet assigned.
TASK_STATE_ASSIGNED = 4 Assigned to executing principal.
TASK_STATE_ACKNOWLEDGED = 5 Executing principal acknowledged receipt of task.
TASK_STATE_PLANNED = 6 Executing principal has developed execution plan.
TASK_STATE_IN_PROGRESS = 7 Currently being executed.
TASK_STATE_PAUSED = 8 Execution temporarily halted.
TASK_STATE_COMPLETED = 9 Successfully completed (TERMINAL STATE).
TASK_STATE_FAILED = 10 Failed to complete (TERMINAL STATE).
TASK_STATE_CANCELLED = 11 Cancelled/deleted (TERMINAL STATE). This is the deletion mechanism for tasks - there is no separate delete operation.
TASK_STATE_REJECTED = 12 Rejected by assignee - unable/unwilling to execute (TERMINAL STATE).