code: function publicAnimationContext(rt, versions) {
    let c = {};
    addPublicVersion(c, 'new', versions[0]);
    if (versions[1]) {
      addPublicVersion(c, 'old', versions[1]);
    }
    c.older = versions.slice(2).map((v) => {
      let context = {};
      addPublicVersion(context, null, v);
      return context;
    });
  
    // Animations are allowed to look each other up.
    c.lookup = function(name) {
      return rt.transitionMap.lookup(name);
    };
  
    return c;
  }
docs: This defines the public set of things that user's transition implementations can access as `this`.