docs: function (beanDef, beanName, packageDef) {
          var keyType = beanDef.$keyType;
          var parentKeyType = null;
          var parent = beanDef[jv._MD_PARENTDEF];
          if (!parent[jv._MD_BUILTIN]) {
              parentKeyType = parent.$keyType;
              if (keyType == null) {
                  beanDef.$keyType = parentKeyType;
                  return;
              }
          } else if (keyType == null) {
              // keyType not specified
              return;
          }
          jv._preprocessBean(keyType, beanName + ".$keyType", packageDef);
          if (parentKeyType != null) {
              __checkInheritance(parentKeyType, keyType);
          }
          // in all cases, keyType must be a sub-type of aria.core.JsonTypes.String
          if (keyType[jv._MD_BASETYPE].typeName != "String") {
              jv._logError(jv.INHERITANCE_EXPECTED, [keyType[jv._MD_TYPENAME], jv._BASE_TYPES_PACKAGE + ".String"]);
              return;
          }
      }