public float priorityFor(Actor actor) {
    if (expired()) return 0 ;
    float impetus = CASUAL ;
    //
    //  Vary readiness based on possession of relevant skills-
    final Skill needed[] = PERFORM_SKILLS[type] ;
    if (needed.length > 0) {
      float avgChance = 0 ;
      for (Skill s : needed) {
        final int DC = s == needed[0] ? MODERATE_DC : ROUTINE_DC ;
        final float chance = actor.traits.chance(s, DC - checkBonus) ;
        avgChance += chance ;
      }
      avgChance /= needed.length ;
      impetus *= avgChance ;
    }
    //
    //  TODO:  ...What about singing voice?  Use gene values?
    //impetus += actor.traits.relativeLevel(SOCIABLE) * 2 ;
    //impetus += actor.traits.relativeLevel(CREATIVE) * 2 ;  TODO:  INSERT
    return Visit.clamp(impetus + priorityMod, 0, URGENT) ;
  }