Represents the type of value inside and Input that can be read from it.
It is possible to distinguish only between four types (null, simple value, object and list) even though
any of these types may have different representations. For example, InputType.Simple is returned for
more than one actual value types (numbers, booleans, strings, timestamps, binary, etc.).
It's not possible to distinguish between them based only on InputType because not every Input
implementation is able to do that. For example, JSON must represent 64-bit integers as strings and therefore
it can't distinguish between strings and numbers in general.
Represents the type of value inside and Input that can be read from it.
It is possible to distinguish only between four types (null, simple value, object and list) even though any of these types may have different representations. For example, InputType.Simple is returned for more than one actual value types (numbers, booleans, strings, timestamps, binary, etc.).
It's not possible to distinguish between them based only on InputType because not every Input implementation is able to do that. For example, JSON must represent 64-bit integers as strings and therefore it can't distinguish between strings and numbers in general.