{ "id": "jem", "displayName": "Jem", "description": "A faithful mechanical pink Jerry-like mouse Codex pet with oversized round ears, a big cheerful face, blush-pink enamel, cream porcelain muzzle and belly, light antique brass joints, and a long segmented tail.", "spritesheetPath": "spritesheet.webp", "states": { "idle": { "atlasRow": "idle", "notes": "Quiet standing idle with tiny blink, slight ear twitch, and gentle tail sway." }, "walk": { "atlasRows": [ "running-right", "running-left" ], "notes": "Directional mouse walk used for movement and drag-facing behavior." }, "curious": { "atlasRow": "review", "notes": "Subtle head tilt and forward-leaning observant loop." }, "happy": { "atlasRow": "waving", "notes": "Restrained friendly pleased gesture with a small paw lift and brighter expression." }, "sleep": { "atlasRow": "waiting", "notes": "Gentle dozing loop with closed eyes and relaxed ears and tail." }, "sit": { "atlasRow": "jumping", "notes": "Dedicated seated rest loop stored in the spare atlas row." }, "probe": { "atlasRow": "running", "notes": "Spare in-place busy companion loop without directional travel." }, "deep_rest": { "atlasRow": "failed", "notes": "Deeper sleepy curl used as a calm extra rest state." } }, "atlasRowSemantics": { "idle": "idle", "running-right": "walk-right", "running-left": "walk-left", "waving": "happy", "jumping": "sit", "failed": "deep-rest", "waiting": "sleep", "running": "task-loop", "review": "curious" }, "requestedActionMap": { "idle": { "atlasRow": "idle", "status": "implemented" }, "walk_right": { "atlasRow": "running-right", "status": "implemented" }, "walk_left": { "atlasRow": "running-left", "status": "implemented" }, "curious": { "atlasRow": "review", "status": "implemented" }, "happy": { "atlasRow": "waving", "status": "implemented" }, "sleep": { "atlasRow": "waiting", "status": "implemented" }, "sit": { "atlasRow": "jumping", "status": "implemented" }, "drag": { "leftAtlasRow": "running-left", "rightAtlasRow": "running-right", "status": "implemented", "notes": "Directional drag uses the true-facing walk rows rather than a guessed mirror mapping." }, "task_loop": { "atlasRow": "running", "status": "implemented" }, "deep_rest": { "atlasRow": "failed", "status": "implemented" } }, "dragFacingValidation": { "rule": "deltaX < 0 => facing left; deltaX > 0 => facing right", "leftDragUses": "running-left", "rightDragUses": "running-right", "leftRowDerivedFrom": "running-right", "manualVerification": [ "left drag uses a true left-facing strip", "right drag uses a true right-facing strip", "walk_left and walk_right are not swapped", "head, body, paws, and tail stay directionally unified in both walk rows", "left drag never faces right and right drag never faces left" ] } }