[schema] use enum to model reference arity and kind