{"contractVersion":"0.1.0-alpha.1","pluginId":"plg_player_rig","publisher":{"id":"pub_fcb267e3-08ca-4755-9fe0-ceb6142544cd","handle":"al-amr-technical"},"slug":"player-rig","name":"Player Rig","version":"0.3.0-alpha.10","shortDescription":"Local movement and flight plus an instanced, LOD-aware remote avatar fleet for large React Three Fiber environments.","category":"3d-world","kind":"frontend_only","runtimeClass":"trusted_library","frontendAdapters":[{"id":"r3f","runtime":"react-three-fiber","exportPath":".","exports":["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"],"capabilities":["render:3d","player:movement","player:camera","avatar:attachment-surfaces","avatar:instanced-fleet"],"peerDependencies":{"react":">=19 <19.3","three":">=0.185.1 <0.186.0","@react-three/drei":">=10.7.7 <11","@react-three/fiber":">=9.6.1 <10"},"composition":{"provides":[{"surface":"avatar.overhead","exportName":"PlayerAvatarOverlay","description":"RTL-safe fixed-pixel semantic overhead surface for centered Environment-composed identity labels and Plugin actions."},{"surface":"avatar.fleet","exportName":"PlayerAvatarFleet","description":"Instanced high/medium/low LOD fleet renderer with one frame sampler and capacity for 160 stable replica slots."},{"surface":"avatar.fleet-overhead","exportName":"PlayerAvatarFleetOverlay","description":"One fullscreen DOM projection surface for up to 24 fleet identity labels."}],"contributes":[]},"semanticPorts":{"provides":[{"id":"local-replica","interfaceId":"spatial.local-replica-source","version":"2.0.0","exportName":"createLocalReplicaSource","description":"Allocation-free full transform sampling with quaternion orientation, linear velocity, explicit movement mode, and teleport discontinuity counter.","lifecycle":"scope","cardinality":"one","actorCorrelation":"none","protocolArtifactId":"local-replica-schema"},{"id":"player-state","interfaceId":"spatial.player-state-source","version":"1.0.0","exportName":"createPlayerStateSource","description":"Provides the local scope's immutable position, velocity, heading, mode, and avatar-animation snapshot without an account identifier.","lifecycle":"scope","cardinality":"one","actorCorrelation":"none","protocolArtifactId":"player-state-schema"}],"requires":[{"id":"remote-replicas","interfaceId":"spatial.remote-replica-source","versionRange":"^2.0.0","bindingName":"remoteReplicaSource","description":"Optionally consumes an Environment-selected remote replica source with explicit movement and freshness semantics for the instanced Fleet and shared overlay.","lifecycle":"scope","cardinality":"one","optional":true,"actorCorrelation":"actor_key","protocolArtifactId":"remote-replica-schema"}]}}],"backendComponents":[],"protocolArtifacts":[{"id":"player-state-schema","kind":"json_schema","specificationVersion":"2020-12","path":"./protocol/player-state.schema.json","digest":"sha256:40714a846f0b6b0d64f3a82c788f800ca73e39fc9e7f8408d0e2ab777fcb443b","mediaType":"application/schema+json"},{"id":"local-replica-schema","kind":"json_schema","specificationVersion":"2020-12","path":"./protocol/local-replica.schema.json","digest":"sha256:bbdac5411de7f5070ff8a8035f6a590abf5d22ed3e89b9a3fbbb9a2673e7ef7d","mediaType":"application/schema+json"},{"id":"remote-replica-schema","kind":"json_schema","specificationVersion":"2020-12","path":"./protocol/remote-replica.schema.json","digest":"sha256:246e750e4f9b8a6dda070a55d0770bfd43fadc3ea482ac3c5d6ee846afe1fc7a","mediaType":"application/schema+json"}],"platformPermissions":[],"browserRequirements":[],"compat":{"contracts":"^0.1.0-alpha.1","sdk":"^0.1.0-alpha.1"},"documentation":{"canonicalUrl":"https://developer.al-amr.com/plugins/al-amr/player-rig","integrationUrl":"https://developer.al-amr.com/plugins/al-amr/player-rig/integration.md","repositoryUrl":"https://github.com/al-amr/al-amr/tree/main/plugins/player-rig","license":"MIT"}}