public static function findAllUsingMixin($mixin): array
    {
        if ($mixin instanceof Mixin) {
            $key = $mixin->getId()->getCurieMajor();
        } else {
            $key = $mixin;
        }

        if (!isset(self::$resolvedMixins[$key])) {
            $schemas = [];
            foreach ((self::$mixins[$key] ?? []) as $id) {
                $schemas[] = self::$classes[$id]::schema();
            }
            self::$resolvedMixins[$key] = $schemas;
        }

        if (empty(self::$resolvedMixins[$key])) {
            throw new NoMessageForMixin($mixin);
        }

        return self::$resolvedMixins[$key];
    }