Build your model
Start with one business task, such as releasing a batch. Describe the information it needs, who may perform it, and what should happen afterward.
Build a small working slice
- Name the entity. Give the object a stable identity.
- Group its details into facets. Keep related fields and behavior together.
- Connect related entities. Use relationships instead of copying their data.
- Declare actions. Define inputs, permissions, and rules.
- Add a lifecycle when needed. State which changes are allowed.
- Describe the interface. Choose fields, views, and actions people need.
Each step is a core concept. Follow the tutorial for Dart examples.
Extend instead of copying
A module can contribute facets to an entity owned by another module through a descriptor. For example, a cleaning module can add a cleaning facet to shared equipment without creating a second equipment record.
See modules and assembly.
Connect behavior
Use extension points when an action needs an external service or specialized behavior. Keep the action's permissions and required evidence in the model.
Evolve safely
When a model changes, review the migration and any required data backfill. Use seed files for initial or sample data. See migrations.