@@ -46,12 +46,12 @@ Modules reside under the `Core` folder and must be registered in `Core\Minds.php
Minds follows an abstraction design pattern - by separating complex processes into standalone chunks with singular responsibilities, it's easier to conduct tests and update infrastructure.
> TODO add diagram here


### Building blocks
####Essential building blocks of a module:
####Essential building blocks of a module:
* The Model (e.g. `VideoChat.php`) - the characteristics that define a single unit of whatever your module is going to handle.
* It might include methods for calculating fields based on the repository response.
* you'll want to `use Minds\Traits\MagicAttributes` so you can automatically use get/set/is methods on each of your model's properties
...
...
@@ -62,13 +62,13 @@ Minds follows an abstraction design pattern - by separating complex processes in
*`Provider.php` - defines a function that registers your Manager to make it available for dependency injection
*`Module.php` - creates an instance of your Provider and calls its `register()` function. Register your module in `Core\Minds.php`.
####Optional building blocks:
####Optional building blocks:
- Delegates - small, stateless functions that are executed by Managers when something happens that has repurcussions elsewhere in the engine. e.g.:
-`NotificationsDelegate.php`
-`EventsDelegate.php`
####Test first:
####Test first:
Managers, Repositories and Delegates should have 100% [spec test](#spec-tests) coverage.