What problem does it solve?
Building Sui Move packages often fails due to subtle object-model mistakes like incorrect abilities, invalid field ordering, or unsafe UID construction, which can break ownership, transfers, and interoperability.
Core Features & Use Cases
- Correct struct and ability declarations: Enforces
public structs, capability field placement rules, and consistent ability usage (key, store, copy, drop) to align with the Sui object system.
- Object ownership and transfer guidance: Clarifies which transfer functions are allowed in-module vs public variants, covering owned objects, shared objects, and frozen objects.
- Dynamic field patterns: Provides canonical approaches for dynamic field and dynamic object field storage and access when keys are extensible or unknown at compile time.
- Naming conventions for clarity and safety: Standardizes capability suffixing (
Cap), error constant casing (EPascalCase), events’ past-tense naming, and dynamic field key struct patterns.
Quick Start
Use the skill’s rules to define your public struct types with the correct abilities (including id: UID as the first field for key structs), then route ownership changes using the appropriate transfer functions and store extensible state via dynamic fields.