# Player Rig 0.3.0-alpha.10

Local movement and flight plus an instanced, LOD-aware remote avatar fleet for large React Three Fiber environments.

## Immutable release

- Plugin ID: `plg_player_rig`
- Release ID: `rel_96c0aedf-6745-459e-ac64-49fbff7e53e6`
- Version: `0.3.0-alpha.10`

## Package artifacts

The package import specifier is the Registry-reviewed `packageName`; do not substitute a source-workspace package name. `packageSpec` identifies the exact install bytes.

| Provider | packageName | packageSpec | Integrity |
| --- | --- | --- | --- |
| al_amr | `@al-amr-community/al-amr-technical--player-rig` | `https://registry.al-amr.com/v1/packages/sha512/3462947641a9ccebdab85a016c0429ba253910fce3281fe17ec28499d00a8d4418a61721fc0fc376d3494f11c8171b8d608894a2f9fbb8f92a5f86caae52477e.tgz` | `sha512-NGKUdkGpzOvauFoBbAQpuiU5EPzjKB/hfsKEmdAKjUQYphch/A/DdtNJTxHIFxuNYIiUovn7uPkqX4bKrlJHfg==` |

## Declare the exact Plugin installation

Run this from an Al-Amr Environment. This command updates the Environment manifest, `al-amr.lock.json`, and the package dependency together. Do not install the npm package directly.

```sh
alamr add al-amr-technical/player-rig@0.3.0-alpha.10 --integration frontend-adapter --adapter r3f --yes --json
```

Run the `installCommand` returned by `alamr add`, then verify the complete declaration:

```sh
alamr validate --json
```

## Trust and compatibility preflight

- Runtime class: `trusted_library` (trusted library code in the host Environment; not a JavaScript sandbox)
- Kind: `frontend_only`
- Contracts: `^0.1.0-alpha.1`
- SDK: `^0.1.0-alpha.1`
- Platform permissions: none declared
- Browser requirements: none declared
- Direct network origins: none declared
- Collected data: none declared
- Shared data: none declared

## Machine-readable release artifacts

- Reviewed TypeScript declaration: [types.d.ts](./types.d.ts)

## Frontend adapters

| Adapter ID | Runtime | Export path | Exports | Capabilities |
| --- | --- | --- | --- | --- |
| `r3f` ([types](./types.d.ts?adapter=r3f)) | `react-three-fiber` | `.` | `PlayerRig`, `PlayerAvatar`, `PlayerAvatarAnchor`, `PlayerAvatarOverlay`, `PlayerAvatarFleet`, `PlayerAvatarFleetOverlay`, `PLAYER_AVATAR_FLEET_CAPACITY`, `PLAYER_AVATAR_ANCHORS`, `avatarOutfitFor`, `fleetAppearanceForSeed`, `DEFAULT_AVATAR_OUTFIT`, `applyPlayerAvatarLocomotion`, `createAvatarAnimationDriver`, `createPlayerController`, `createPlayerStateSource`, `createLocalReplicaSource`, `createPlayerKeyActionMap`, `DEFAULT_PLAYER_INPUT_BINDINGS`, `usePlayerSnapshot`, `usePlayerPose`, `usePlayerCamera`, `createFlatNavigationSurface`, `playerRigPluginManifest`, `PLAYER_RIG_PLUGIN_ID`, `DEFAULT_AVATAR_ANIMATION_OPTIONS`, `DEFAULT_PLAYER_CAMERA_CONFIG`, `shouldRenderLocalAvatar`, `stepPlayerCamera`, `computeCameraTransform`, `stepCameraFollowTransform`, `DEFAULT_PLAYER_MOVEMENT_CONFIG`, `isPlayerGrounded`, `stepPlayerMovement`, `AVATAR_SHIRT_COLORS`, `AVATAR_TROUSER_COLORS`, `AVATAR_HAIR_COLORS`, `AVATAR_SKIN_COLORS`, `AVATAR_SHOE_COLORS`, `AVATAR_ACCENT_COLORS`, `AVATAR_OUTFIT_COMBINATIONS`, `PLAYER_AVATAR_ROOT_NAME`, `PLAYER_AVATAR_HEIGHT`, `PLAYER_AVATAR_HEAD_NAME`, `PLAYER_AVATAR_JOINT_NAMES`, `PLAYER_AVATAR_FLEET_HIGH_CAPACITY`, `PLAYER_AVATAR_FLEET_MEDIUM_CAPACITY`, `PLAYER_AVATAR_FLEET_LOW_CAPACITY`, `reconcileFleetDescriptors`, `reconcileFleetSlots` | `render:3d`, `player:movement`, `player:camera`, `avatar:attachment-surfaces`, `avatar:instanced-fleet` |

## Semantic composition surfaces

The Environment is the compositor. Providers define semantic mount points; contributors provide content for a compatible surface without importing the provider Plugin.

| Direction | Surface | Adapter | Export | Description |
| --- | --- | --- | --- | --- |
| provides | `avatar.overhead` | `r3f` | `PlayerAvatarOverlay` | RTL-safe fixed-pixel semantic overhead surface for centered Environment-composed identity labels and Plugin actions. |
| provides | `avatar.fleet` | `r3f` | `PlayerAvatarFleet` | Instanced high/medium/low LOD fleet renderer with one frame sampler and capacity for 160 stable replica slots. |
| provides | `avatar.fleet-overhead` | `r3f` | `PlayerAvatarFleetOverlay` | One fullscreen DOM projection surface for up to 24 fleet identity labels. |

## Semantic behavior ports

The Environment resolves and owns these bindings. Matching compares interface/version, lifecycle, cardinality, actor-correlation policy, and protocol artifact digest before Plugin code is loaded.

| Direction | Port | Adapter | Interface | Version | Lifecycle | Cardinality | Actor correlation | Binding/export | Protocol |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| provides | `local-replica` | `r3f` | `spatial.local-replica-source` | `2.0.0` | `scope` | `one` | `none` | `createLocalReplicaSource` | `local-replica-schema` |
| provides | `player-state` | `r3f` | `spatial.player-state-source` | `1.0.0` | `scope` | `one` | `none` | `createPlayerStateSource` | `player-state-schema` |
| requires | `remote-replicas` | `r3f` | `spatial.remote-replica-source` | `^2.0.0` | `scope` | `one` | `actor_key` | `remoteReplicaSource` | `remote-replica-schema` |

## Import examples

These imports use the selected Registry artifact package name: `@al-amr-community/al-amr-technical--player-rig`.

### r3f (react-three-fiber)

```ts
import * as PluginAdapter from "@al-amr-community/al-amr-technical--player-rig";

// Runtime values are available on PluginAdapter. The reviewed declaration
// names (runtime values plus structural TypeScript bindings) are listed above
// and in types.d.ts; type-only declarations do not exist at runtime.
void PluginAdapter;
```


## Verified protocol artifacts

The Managed Store artifact validator recomputes each digest from package bytes. Registry metadata alone is not integrity evidence.

| ID | Kind | Specification | Package path | SHA-256 digest |
| --- | --- | --- | --- | --- |
| `player-state-schema` | `json_schema` | `2020-12` | `./protocol/player-state.schema.json` | `sha256:40714a846f0b6b0d64f3a82c788f800ca73e39fc9e7f8408d0e2ab777fcb443b` |
| `local-replica-schema` | `json_schema` | `2020-12` | `./protocol/local-replica.schema.json` | `sha256:bbdac5411de7f5070ff8a8035f6a590abf5d22ed3e89b9a3fbbb9a2673e7ef7d` |
| `remote-replica-schema` | `json_schema` | `2020-12` | `./protocol/remote-replica.schema.json` | `sha256:246e750e4f9b8a6dda070a55d0770bfd43fadc3ea482ac3c5d6ee846afe1fc7a` |
