static Concept conceptFromMatches(Class cClass, Matches m) { Concept c = cnew(cClass); S order = toStringOpt(getOpt(cClass, "_fieldOrder")); L fields; if (order != null) fields = splitAtSpace(order); else fields = asList(asTreeSet(conceptFields(c))); if (l(fields) != l(m.m)) fail(struct(fields) + " / " + struct(m.m)); for i over fields: cset(c, fields.get(i), parseToOptions(m.unq(i))); ret c; }