# Connection & services

The connection model is **inverted** versus a typical client SDK: your Unreal app runs a set of gRPC **servers** (the service components) and *registers itself* with OMS via a discovery/registration handshake. OMS/CVS then call into those services. So most service-component methods are server-side handlers — the caller-facing surface is a small set of properties, events, and singleton accessors.

:::caution[Units & space]
Unreal world units are **centimeters**, rotations **degrees**; AR 51 data arrives in **meters**. Use the [conversion helpers](#uanchorservicecomponent) on `UAnchorServiceComponent` for anything crossing the boundary.
:::

## AAR51SDK

Moved to [`AAR51SDK`](/docs/sdk-api/unreal-api/classes/aar51sdk).

## UAnchorServiceComponent

Moved to [`UAnchorServiceComponent`](/docs/sdk-api/unreal-api/classes/uanchorservicecomponent).

## UHandSkeletonServiceComponent

Moved to [`UHandSkeletonServiceComponent`](/docs/sdk-api/unreal-api/classes/service-components#uhandskeletonservicecomponent).

## UEngineServiceComponent

Moved to [`UEngineServiceComponent`](/docs/sdk-api/unreal-api/classes/service-components#uengineservicecomponent).

## Service endpoints

Moved to [`Service endpoints`](/docs/sdk-api/unreal-api/classes/service-components#pure-service-endpoints).

---

Next: [Skeletons & characters](/docs/sdk-api/unreal-api/skeletons-and-characters).
