code: function Feature(f, name, parameters) {
    this.evaluate = f;
    this.name = name;
    this.parameters = parameters;
  
    var tmp = "";
    parameters.forEach(function(par) {
      tmp += par + "|";
    });
    this.parametersKey = tmp.substr(0, tmp.length - 1);
  }
docs: /*
  Feature class for features that fire (or don't) on combinations of context
  and class
  Copyright (C) 2017 Hugo W.L. ter Doest
  
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.
  
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  
  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.