Representing ordered categorical predictors

I’m trying to use an ordered-categorical predictor–the “delta_mRS” stuff. The following code comes from the stancode() function in the rethinking package. But when I run it in RStan, I get the warning that “Ill-typed arguments supplied to ‘dirichlet’…” Does anybody know how to enter ordered-categorical predictors?

data{
int smk[626];
int metSyn_alpha[3];
int metSyn[626];
int etoh[626];
int cad[626];
vector[626] bmi;
int stroke_tia[626];
int prev[626];
int mRS_preop_alpha[6];
int mRS_preop[626];
int gcs_alpha[12];
int gcs[626];
int age2[626];
int age[626];
vector[626] time;
int sex[626];
int rupt[626];
int migraine[626];
int mRS_discharge_alpha[6];
int mRS_discharge[626];
int insXrupt[626];
int dist[626];
int comp[626];
vector[626] mean_lnInc;
int rows;
int FU[626];
vector[626] sd_lnInc;
vector[626] sem_lnInc;
int rowid[626];
int ins[626];
real grandSEM_lnInc;
real grandMean_lnInc;
}
parameters{
vector[4] a_ins;
vector[626] nu;
vector[626] stdN1;
vector[626] stdN2;
vector[4] b_lnInc;
real b_dist;
vector[2] a_sex;
real b_time;
vector[2] a_migraine;
vector[3] a_comp;
real b_mRS_discharge;
simplex[6] DELTA_mRS_discharge;
real<lower=0> phi;
}
model{
vector[626] lambda;
vector[7] delta_mRS_discharge;
phi ~ exponential( 2 );
DELTA_mRS_discharge ~ dirichlet( mRS_discharge_alpha );
delta_mRS_discharge = append_row(0, DELTA_mRS_discharge);
b_mRS_discharge ~ normal( 0 , 1 );
a_comp ~ normal( 0 , 1 );
a_migraine ~ normal( 0 , 1 );
b_time ~ normal( 1 , 1 );
a_sex ~ normal( 0 , 1 );
b_dist ~ normal( 0 , 1 );
b_lnInc ~ normal( 0 , 1 );
stdN2 ~ normal( 0 , 1 );
stdN1 ~ normal( 0 , 1 );
nu ~ normal( grandMean_lnInc , grandSEM_lnInc );
a_ins ~ normal( 0 , 1 );

for ( i in 1:626 ) {
    lambda[i] = a_ins[ins[i]] + b_lnInc[ins[i]] * ((nu[rowid[i]] + stdN2[rowid[i]] * sem_lnInc[i]) + stdN1[rowid[i]] * sd_lnInc[i]) + b_dist * dist[i] + a_sex[sex[i]] + b_time * time[i] + a_migraine[migraine[i]] + a_comp[comp[i]] + b_mRS_discharge * sum(delta_mRS_discharge[1:mRS_discharge[i]]);
    lambda[i] = exp(lambda[i]);
}

FU ~ neg_binomial_2( lambda , phi );

}
generated quantities{
vector[626] lnInc;
vector[626] mu;
vector[626] log_lik;
vector[626] lambda;
vector[7] delta_mRS_discharge;
delta_mRS_discharge = append_row(0, DELTA_mRS_discharge);

for(i in 1:626) lnInc[i] = ((nu[rowid[i]] + stdN2[rowid[i]] * sem_lnInc[i]) + stdN1[rowid[i]] * sd_lnInc[i]);

for(i in 1:626) mu[i] = (nu[rowid[i]] + stdN2[rowid[i]] * sem_lnInc[i]);
  
for ( i in 1:626 ) {
    lambda[i] = a_ins[ins[i]] + b_lnInc[ins[i]] * ((nu[rowid[i]] + stdN2[rowid[i]] * sem_lnInc[i]) + stdN1[rowid[i]] * sd_lnInc[i]) + b_dist * dist[i] + a_sex[sex[i]] + b_time * time[i] + a_migraine[migraine[i]] + a_comp[comp[i]] + b_mRS_discharge * sum(delta_mRS_discharge[1:mRS_discharge[i]]);
    lambda[i] = exp(lambda[i]);
}

for ( i in 1:626 ) log_lik[i] = neg_binomial_2_lpmf( FU[i] | lambda[i] , phi );

}

Ah, actually, the rethinking-generated code is nearly correct. The problem is

data{
int mRS_discharge_alpha[6];
}

should be

data{
vector[6] mRS_discharge_alpha;
}