from pathlib import Path


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

REQUIRED = {
    ROOT / "Docs" / "Investor" / "InvestorDemoStatus.md": [
        "Current classification: systems-first investor prototype.",
        "should not be described as an investor visual MVP",
        "visual/menu quality gate is complete",
        "non-ray-traced default/compatibility rendering remains credible",
        "packaged-demo visual QA screenshots or clips",
    ],
    ROOT / "Docs" / "Legal" / "InvestorDemoNotices.md": [
        "Systems-first investor prototype. Visual MVP gate pending.",
        "Do not describe the current build as an investor visual MVP",
    ],
    ROOT / "Source" / "AgrarianGame" / "AgrarianDemoNoticeActor.h": [
        "Systems-first investor prototype - visual MVP gate pending",
    ],
    ROOT / "Source" / "AgrarianGame" / "AgrarianDemoNoticeWidget.h": [
        "Systems-first investor prototype - visual MVP gate pending",
    ],
    ROOT / "Scripts" / "InstallWindowsDemoLaunchers.bat": [
        "DEMO_CLASSIFICATION=Systems-first investor prototype - visual MVP gate pending.",
        "Classification: %DEMO_CLASSIFICATION%",
        "Do not describe it as the investor visual MVP",
    ],
    ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md": [
        "[x] Reclassify the current investor demo as systems-first, not investor visual MVP",
    ],
}


def main():
    missing = []
    for path, snippets in REQUIRED.items():
        text = path.read_text(encoding="utf-8")
        for snippet in snippets:
            if snippet not in text:
                missing.append(f"{path.relative_to(ROOT)} missing {snippet!r}")

    if missing:
        raise SystemExit("Investor demo systems-first status verification failed:\n" + "\n".join(missing))

    print("PASS: investor demo is classified as systems-first until the visual MVP gate is complete.")


if __name__ == "__main__":
    main()
