docs: public long unfilledDependencyToLong(UnfilledDependency dep) {
      long argNum = dep.getArgumentIndex();
      long objectNum, objectWordInd, subjectNum, subjectWordInd, subjectSyntaxNum;
  
      if (dep.hasObject()) {
        IndexedPredicate obj = dep.getObject();
        objectNum = dependencyHeadType.getValueIndex(obj.getHead()) + MAX_ARG_NUM;
        objectWordInd = obj.getHeadIndex();
      } else {
        objectNum = dep.getObjectIndex();
        objectWordInd = 0L;
      }
  
      if (dep.hasSubject()) {
        IndexedPredicate sbj = dep.getSubject();
        subjectNum = dependencyHeadType.getValueIndex(sbj.getHead()) + MAX_ARG_NUM;
        subjectWordInd = sbj.getHeadIndex();
        subjectSyntaxNum = dependencySyntaxType.getValueIndex(dep.getSubjectSyntax());
      } else {
        subjectNum = dep.getSubjectIndex();
        subjectSyntaxNum = 0L;
        subjectWordInd = 0L;
      }
  
      return marshalUnfilledDependency(objectNum, argNum, subjectNum, subjectSyntaxNum,
          objectWordInd, subjectWordInd);
    }