code: private static Optional<ICondition> asBetween( JsonObject json)
      {
      return
        Optional.of( json)
        .filter( j -> j.containsKey( BETWEEN_KEY))
        .map( j -> j.getJsonObject( BETWEEN_KEY))
        .map( b -> 
          new Between(
            b.containsKey( EXCLUSIVE_MIN_KEY)
            ? new AssertMore( b.getString( PROPERTY_KEY), b.getInt( EXCLUSIVE_MIN_KEY))
            : new AssertNotLess( b.getString( PROPERTY_KEY), b.getInt( MIN_KEY)),
  
            b.containsKey( EXCLUSIVE_MAX_KEY)
            ? new AssertLess( b.getString( PROPERTY_KEY), b.getInt( EXCLUSIVE_MAX_KEY))
            : new AssertNotMore( b.getString( PROPERTY_KEY), b.getInt( MAX_KEY))));
      }
docs: Returns the between condition represented by the given JSON object or an empty
  value if no such condition is found.