docs: @Requires({
      "parent != null",
      "annotation != null",
      "owner != null",
      "p != null"
    })
    protected void visitAnnotation(
        Element parent, AnnotationMirror annotation,
        boolean primary, ClassName owner, ElementModel p) {
      if (utils.isContractAnnotation(annotation)) {
        ContractAnnotationModel model =
            createContractModel(parent, annotation, primary, owner);
        if (model != null) {
          p.addEnclosedElement(model);
        }
      }
    }