code: function Animation(opts) {
    this.type = 'Animation'
    this.entity = null
    this.enabled = true
    this.playing = false
    this.loop = false
    this.time = 0 // seconds
    this.prevTime = Date.now() // ms
    this.channels = opts.channels || []
    this.changed = new Signal()
    this.set(opts)
  }
docs: Assumptions: - all channels have the same time length - animation channels can reference other entities - currently all animations track time by themselves