from pathlib import Path


ROOT = Path(__file__).resolve().parents[1]


REQUIRED_SNIPPETS = {
    "Docs/ArtUxCodeAndAssetStandards.md": [
        "## MVP Realism Target Rules",
        "production-directed proxies, not final art",
        "avoid cosmetic-only changes",
        "real-world biome references",
    ],
    "Docs/CharactersAndObjects/MvpReadableSurvivalObjectProxies.md": [
        "Final realistic art should replace these proxies",
        "without changing survival",
    ],
    "Docs/Terrain/GroundZeroNaturalEnvironmentPass.md": [
        "coastal scrub",
        "drive density and shape selection from land-cover",
    ],
    "Docs/Terrain/GroundZeroWaterSourceVisualPass.md": [
        "production water material",
        "bank geometry",
    ],
    "Docs/Terrain/GroundZeroDensitySightlineTuning.md": [
        "coastal scrub biome",
        "without hiding the first playable survival loop",
    ],
    "Scripts/setup_ground_zero_demo_map.py": [
        'M_AGR_GZ_Terrain_CoastalScrub',
        'M_AGR_GZ_Tree_CoastalOak',
        'M_AGR_GZ_Shrub_CoyoteBrush',
        'M_AGR_GZ_Grass_DryCoastal',
        'M_AGR_GZ_Stone_Sandstone',
        'SIGHTLINE_TUNING_CONFIG',
    ],
    "AGRARIAN_DEVELOPMENT_ROADMAP.md": [
        "[x] Preserve realism as the target",
        "production realism",
        "cosmetic throwaways",
    ],
}


def main():
    failures = []
    for relative_path, snippets in REQUIRED_SNIPPETS.items():
        path = ROOT / relative_path
        if not path.exists():
            failures.append(f"missing {relative_path}")
            continue

        text = path.read_text(encoding="utf-8")
        for snippet in snippets:
            if snippet not in text:
                failures.append(f"{relative_path} missing snippet: {snippet}")

    if failures:
        raise SystemExit("MVP realism target verification failed:\n" + "\n".join(failures))

    print("PASS: MVP realism target standards are documented and wired to 0.1.O visual gates.")


if __name__ == "__main__":
    main()
