What problem does it solve? Adding a new modality to the ResoniteIO bridge requires coordinated changes across six mirrored layers (proto, C# Core Service and Bridge interface, C# Mod FrooxEngine bridge, Python client, CLI, and tests), and missing any convention causes build failures, CS0436 duplicate-type errors, or gRPC cancel exceptions. ## Core Features & Use Cases - Mirroring conventions: Enforces the modality-unit directory and naming layout across proto, C# Core/Mod, Python, CLI, and test trees. - Layered implementation rules: Codifies Core/Mod separation, Bridge interfaces returning Core POCOs, engine-thread dispatch via World.RunSynchronously, and three-stage gRPC cancel exception handling. - Incremental 9-step workflow: Guides proto-first generation with just gen-proto, Kestrel round-trip Core tests, in-process Python gRPC tests, SafeShutdown chain registration, and docs updates. - Use Case: When adding a Grabber-style modality, follow the skill to create IGrabberBridge, GrabberService, FrooxEngineGrabberBridge, the Python GrabberClient, a flat CLI command, and matching tests without breaking the build. ## Quick Start Add a new modality called Tracking to resonite-io following the add-new-modality conventions, starting from the proto definition through the Python client and tests.