include/ecsalt.hrl
-record(world, {
systems = [] :: [{term(), system()}],
entities :: ets:tid(),
components :: ets:tid()
}).
-opaque world() :: #world{}.
-export_type([world/0]).
-type component() :: {term(), term()}.
-type entity() :: {term(), [component()]}.
-export_type([entity/0]).
-type system() :: {mfa() | fun()}.
-type id() :: identifier().