code: private static boolean isSubtype(
        ObjectType typeA,
        RecordType typeB,
        ImplCache implicitImplCache,
        SubtypingMode subtypingMode) {
  
      MatchStatus cached = implicitImplCache.checkCache(typeA, typeB);
      if (cached != null) {
        return cached.subtypeValue();
      }
  
      boolean result =
          isStructuralSubtypeHelper(
              typeA, typeB, implicitImplCache, subtypingMode, ALL_PROPS_ARE_REQUIRED);
      return implicitImplCache.updateCache(typeA, typeB, MatchStatus.valueOf(result));
    }
docs: Determines if typeA is a subtype of typeB