Use late static binding to simplify ValueVariable::fromJSON