@Nonnull
    public static List<Mapcode> encode(final double latDeg, final double lonDeg)
            throws IllegalArgumentException {
        return encode(latDeg, lonDeg, null);
    }
@ Nonnull public static List < Mapcode > encode ( final double latDeg , final double lonDeg ) throws IllegalArgumentException { return encode ( latDeg , lonDeg , null ) ; }
Encode a lat/lon pair to a mapcode with territory information. This produces a non-empty list of mapcode,
with at the very least 1 mapcodes for the lat/lon, which is the "International" mapcode.

The returned result list will always contain at least 1 mapcode, because every lat/lon pair can be encoded.

The list is ordered in such a way that the last result is the international code. However, you cannot assume
that the first result is the shortest mapcode. If you want to use the shortest mapcode, use
{@link #encodeToShortest(double, double, Territory)}.

The international code can be obtained from the list by using: "results.get(results.size() - 1)", or
you can use {@link #encodeToInternational(double, double)}, which is faster.

@param latDeg Latitude, accepted range: -90..90.
@param lonDeg Longitude, accepted range: -180..180.
@return Non-empty, ordered list of mapcode information records, see {@link Mapcode}.
@throws IllegalArgumentException Thrown if latitude or longitude are out of range.