Extending Grid Toolkit
Use these guides when the built-in behavior does not cover a project requirement. Start with Extension design and ownership rules, then choose the narrowest contract family below. Keep runtime extensions, policies, authoring adapters, editor registrations, and renderer modules in separate assemblies matching their dependencies.
Cell Metadata, Inventory, and uGUI expose Preview extension contracts. Prefer their built-in public contracts, isolate module-specific customizations, and check the exact type tier in the API reference. Internal implementation classes, private serialized fields, and packaged demo code are not supported customization boundaries.
Choose the extension point
| Your project needs to... | Start with... |
|---|---|
| Plan one single-board mutation and publish its committed event | Create a custom action and event |
| Coordinate one atomic command across several boards | Create multi-board operations |
| Store immutable project data on board, cell, or structure definitions | Store project data in definitions |
| Store additional runtime data or publish a detached read model | Runtime extensions and detached read models |
| Preserve custom payloads or validate restoration | Snapshot resolvers and restore policies |
| Accept or reject placement and coexistence | Placement, admission, and coexistence policies |
| Run project logic when structures change | Structure behaviors |
| Reuse a custom board query shape | Custom selection patterns |
| Add a coordinate, orientation, or spatial mapping family | Custom topology, orientation, and layout |
| Support project-owned assets or Inspector workflows | Authoring and editor adapters |
| Add retained visual content, action feedback, or rendering behavior | Renderer modules, invalidation, capabilities, and visual intents |
| Control generated structure identity | Choose structure instance IDs |
| Customize Cell Metadata, Inventory, or uGUI | Optional-module tasks |