-/*
-Serpentity is a simple entity framework inspired by Ash.
-
-Usage:
-
- let Serpentity = require('serpentity');
-
-## Instantiating an engine
-
- let engine = Serpentity();
-
-Add entities or systems, systems are added with a priority (the smaller
-the number, the earlier it will be called):
-
- engine.addEntity(entityFactory());
- engine.addSystem(new GameSystem(), priority);
-
-Update all systems:
-
- engine.update(dt);
-
-Remove entities or systems:
-
- engine.removeEntity(entityReference);
- engine.removeSystem(systemReference);
-
-## Creating Entities
-
-Entities are the basic object of Serpentity, and they do nothing.
-
- let entity = new Serpentity.Entity();
-
-All the behavior is added through components
-
-## Creating Components
-
-Components define data that we can add to an entity. This data will
-eventually be consumed by "Systems"
-
- let PositionComponent = class PositionComponent extends Serpentity.Component {
- constructor (config) {
- this.x = 0;
- this.y = 0;
-
- super(config);
- }
- };
-
-You can add components to entities by using the add method:
-
- entity.addComponent(new PositionComponent());
-
-
-Systems can refer to entities by requesting nodes.
-
-## Working with Nodes