ProximityDeviceLocation
Device's reported GPS state. Optional fields feed the integrity rubric — when
absent, the corresponding integrity check yields NOT_PROVIDED. gps_accuracy_m
is the single most load-bearing optional field; without it the confidence
ceiling drops to 0.85, and a value > 100m hard-caps the score at 0.60.
latnumber<double>required
Example:
5.780952815725535lngnumber<double>required
Example:
-0.1137042570848795gps_accuracy_mnumber<double>
From location.accuracy (Android) / horizontalAccuracy (iOS).
Example:
8.5altitude_mnumber<double>
Spoofing apps frequently report exactly 0.0 — real devices almost never do.
Example:
42speed_mpsnumber<double>
Should be ~0 if "at home". > 10 mps marks SUSPICIOUS.
Example:
0bearing_degnumber<double>nullable
location_providerstring
Hardware (gps/fused) earns +0.03 in the rubric; network/passive does not.
Possible values: [gps, fused, network, passive]
Example:
gpsis_mock_locationboolean
Android isMockProvider. iOS does not expose this — omit on iOS.
Example:
falselocation_age_msinteger<int64>
How stale the GPS fix is. Fresh < 5000 ms.
Example:
1200ProximityDeviceLocation
{
"lat": 5.780952815725535,
"lng": -0.1137042570848795,
"gps_accuracy_m": 8.5,
"altitude_m": 42,
"speed_mps": 0,
"bearing_deg": 0,
"location_provider": "gps",
"is_mock_location": false,
"location_age_ms": 1200
}