code: function Intent(subject, op, target, data) {
    this.subject = subject;
    this.op = op;             // create | read | update | delete
    this.target = target;
    this.data = data;
  }
docs: todo: protect/freeze the attributes?