String desc = strings.create(first(indexDefn, JcrLexicon.DESCRIPTION));
String providerNameStr = strings.create(providerName);
String kindStr = strings.create(first(indexDefn, ModeShapeLexicon.KIND));
String workspacesRule = strings.create(first(indexDefn, ModeShapeLexicon.WORKSPACES));
boolean synchronous = booleans.create(first(indexDefn, ModeShapeLexicon.SYNCHRONOUS));
IndexKind kind = IndexKind.valueOf(kindStr);
String nodeTypeName = strings.create(names.create(first(indexDefn, ModeShapeLexicon.NODE_TYPE_NAME)));
Map<String, Object> extendedProps = new HashMap<>();
for (Iterator<Property> props = indexDefn.getProperties(system); props.hasNext();) {
Property prop = props.next();
if (NON_EXTENDED_PROPERTIES.contains(prop.getName())) continue;