Skip to content

ADatP-37 / MIL-STD-2525E SIDC Support

Status: Implemented

See the Status & Roadmap for the system-wide view.

What it is

ADatP-37 is the NATO standard for Symbol Identification Coding. It defines the numeric SIDC format used by both APP-6E (NATO) and MIL-STD-2525E (US). APP-6E (ADatP-37) is mandatory and, internally, Bedrock uses the 30-character numeric form only. The SIDC encodes a unit's affiliation, echelon, symbol set, type, and modifiers in a single canonical string.

Bedrock's integration

Bedrock implements SIDC parsing natively, and internally uses 30-character SIDC only — the native parser's SIDC_PATTERN matches the 30-character form only; wire and persistence carry 30-char.

The interop gateway is the one place that may accept older inputs (20-character legacy numeric, 15-character alphanumeric / pre-E) from external feeds — it normalizes them to 30-character before they cross into Bedrock. Anything it cannot normalize to a valid 30-char SIDC is rejected at the gateway. Nothing downstream of the gateway sees a non-30-char SIDC.

  • Parsercommon/src/sidc/ parses, validates, and builds SIDCs across all positions, all 7 symbol sets, and the full set of affiliations, echelons, unit types, and modifiers, with round-trip test coverage.
  • Androidandroid/ui/symbols/SidcEncoder.kt is a Kotlin mirror of the Rust parser used by the Android UI; android/ui/symbols/NatoSymbolDrawing.kt renders the symbols.

Repo-specific implementation detail lives with the owning repos: common/docs/standards/adatp37-sidc.md.

See also