code: public final Set<String> getPropertyNames() {
      Set<String> props = new TreeSet<>();
      collectPropertyNames(props);
      return props;
    }
docs: Returns a list of properties defined or inferred on this type and any of
  its supertypes.