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.
- Parser —
common/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. - Android —
android/ui/symbols/SidcEncoder.ktis a Kotlin mirror of the Rust parser used by the Android UI;android/ui/symbols/NatoSymbolDrawing.ktrenders the symbols.
Repo-specific implementation detail lives with the owning repos: common/docs/standards/adatp37-sidc.md.
See also¶
- APP-6 symbology — the rendering side of the same standard
- Interop standards index
- Status & Roadmap