code: public static <P extends Enum<P>> boolean hasPoint(final JSONObject json, P e) {
          Object o = opt(json, e);
          return o != null && o != JSONObject.NULL && o instanceof JSONObject &&
                  isPoint((JSONObject) o);
      }
docs: Checks whether the value mapped by enum exists, is a {@link JSONObject}, has at least one
  field named either "x" or "y", and that if either field is present, it is a number.  If at
  least one of the fields is present, it can be assumed that the missing field is defaulted to
  zero.  If both are missing, it's ambiguous, at best, whether the object in question can
  reasonably be treated as a {@link Point}.  This specification is permissive -- there can be
  other, non-{@code Point}, fields present.  In that case, it can be considered that the object
  <em>extends</em> {@code Point}.
  
  @param json {@code JSONObject} to check
  @param e    {@link Enum} labeling the data to check
  @return {@code True} if the mapping exists and meets the conditions above; {@code false}
  otherwise.