Subtype of {@link ConfigValue} representing a list value, as in JSON's{@code [1,2,3]} syntax.
{@code ConfigList} implements {@code java.util.List} so you canuse it like a regular Java list. Or call {@link #unwrapped()} to unwrap thelist elements into plain Java values. Like all {@link ConfigValue} subtypes, {@code ConfigList} is immutable. Thismakes it threadsafe and you never have to create "defensive copies." The mutator methods from {@link java.util.List} all throw{@link java.lang.UnsupportedOperationException}.
The {@link ConfigValue#valueType} method on a list returns{@link ConfigValueType#LIST}.
Do not implement {@code ConfigList}; it should only be implemented by the config library. Arbitrary implementations will not work because the library internals assume a specific concrete implementation. Also, this interface is likely to grow new methods over time, so third-party implementations will break.