The following use of JSON_modifier_list works:
select cast('[1,2,3]' as json) is json value;
select cast('[1,2,3]' as json) is json object;
select cast('[1,2,3]' as json) is json array;
select cast('[1,2,3]' as json) is json (array, object, value);
select cast('[1,2,3]' as json) is json scalar;
However, when using a JSON_scalar_modifier a syntax error is produced:
select cast('1' as json) is json scalar number;
select cast('2' as json) is json scalar string;
select cast('3' as json) is json scalar binary_double;
select cast('4' as json) is json (scalar binary_double, scalar number, scalar string);