export function summarizeExternalParityGLTFCorpus(manifest) {
    validateExternalParityGLTFCorpusManifest(manifest);
    return {
        assetCount: manifest.assets.length,
        visualEvidenceSlots: manifest.assets.filter((asset) => asset.visualEvidenceSlot).length,
        advancedMaterialAssets: manifest.assets.filter((asset) => asset.advancedMaterial).length,
        animationSkinMorphAssets: manifest.assets.filter((asset) => asset.animationSkinMorph).length,
        licenseReviewRequired: manifest.assets.filter((asset) => asset.licenseReviewRequired).length,
        licenses: [...new Set(manifest.assets.map((asset) => asset.license))].sort(),
        featureCoverage: [...new Set(manifest.assets.flatMap((asset) => asset.features))].sort(),
        releaseProofComplete: false
    };
}
export function validateExternalParityGLTFCorpusManifest(manifest) {
    if (manifest.schema !== "a3d-external-parity-gltf-corpus")
        throw new Error("Invalid external parity GLTF corpus schema.");
    if (!manifest.source.repository || !manifest.source.revision || !manifest.source.sourceManifest)
        throw new Error("External parity GLTF corpus source must include repository, revision, and source manifest.");
    if (!manifest.claimBoundary.includes("not final flagship product visual proof"))
        throw new Error("External parity GLTF corpus must include a flagship proof claim boundary.");
    if (manifest.assets.length < 25)
        throw new Error("External parity GLTF corpus must include at least 25 assets.");
    for (const asset of manifest.assets) {
        if (!asset.id || !asset.license || !asset.provenance)
            throw new Error(`External parity GLTF corpus asset ${asset.id || "<missing>"} lacks license/provenance.`);
        if (asset.features.length === 0)
            throw new Error(`External parity GLTF corpus asset ${asset.id} lacks feature tags.`);
    }
}
export const summarizeExternalParityCorpus = summarizeExternalParityGLTFCorpus;
export const validateExternalParityCorpusManifest = validateExternalParityGLTFCorpusManifest;
//# sourceMappingURL=ExternalParityGLTFCorpus.js.map