(local proto (require :lib.proto)) {:init (proto.table-method :entity.init) :position (proto.table-value :entity.position) :velocity (proto.table-value :entity.velocity) :duration (proto.table-value :entity.duration) ;; [self game {: up : down : left : right}] :steer (proto.meta-method :entity.velocity) ;; [self game] ;; screen origin at center of entity, 1 = 1 pixel (for now) :draw (proto.meta-method :entity.draw) ;; [self game pos] :collide (proto.meta-method-opt :entity.collide)}