--- project_name: 'HS_DollyCam' user_name: 'mita' date: 'Wed May 06 2026' sections_completed: ['technology_stack', 'implementation_rules', 'patterns'] existing_patterns_found: 7 --- # Project Context for AI Agents _This file contains critical rules and patterns that AI agents must follow when implementing code in this project. Focus on unobvious details that agents might otherwise miss._ --- ## Technology Stack & Versions - **Language:** LSL (Linden Scripting Language) - **Platform:** Second Life - **Core Communication:** `llMessageLinked` (Linkset Message) - **Configuration:** `.properties` files (e.g., `HS_CamEngine.properties`) - **Key Components:** Specialized LSL scripts (`Controller`, `Playlist`, `imEngineTour`, `Core`, etc.) ## Critical Implementation Rules - **Memory Management (CRITICAL):** - Avoid large or mixed-type lists to prevent memory pressure. - Minimize the use of `llParseString2List` in hot paths (e.g., timer events or frequent `llMessageLinked` receivers). - Use targeted parsing (token-based or separator-based) for payloads like `CE_INT_SET_CAM`. - Prefer short-lived data and targeted field extraction. - **Communication Protocol:** - Adhere to the defined `CE_INT_*` and `CE_CMD_*` constants for inter-script communication. - Use `llRegionSayTo` for marker communication when the target key is known to reduce region-wide listener wakeups. - **Parsing & Data Handling:** - For high-frequency updates (e.g., camera frames), use optimized parsing helpers as seen in `HS_CamEngineCore.lsl`. - When reading presets, avoid full string splitting if only a subset of fields is required. - **Workflow Constraints:** - Keep continuous tour runtime lists in script memory (`HS_CamEngineTour.lsl`) rather than Linkset Data to ensure performance during timer ticks. ## Existing Patterns & Conventions - **Naming Conventions:** - Scripts follow the `HS_Cam[Name].lsl` pattern. - Communication constants use the `CE_CMD_`, `CE_INT_`, `MN_CMD`, etc., prefixes. - **Code Organization:** - Modules are split by responsibility (Controller, Playlist, Engine, etc.). - Use specialized helper scripts for secondary workflows (e.s. `HS_CamTourCommands.lsl`) to reduce memory pressure on main scripts. - **Error Handling/Validation:** - Local checks should include brace-balance and conflict marker searches. - Use targeted `rg` scans to detect accidental reintroductions of inefficient `llParseString2List` calls.