{
  "schema_version": 1,
  "program": {
    "id": "fonline-public-examples",
    "organization": "cvet",
    "engine_repository": "cvet/fonline",
    "engine_clone_url": "https://github.com/cvet/fonline.git",
    "documentation_url": "https://fonline.ru",
    "default_branch": "main",
    "license": "MIT",
    "owners": {
      "documentation": "Documentation maintainers",
      "build_release": "Build and release maintainers",
      "runtime": "Engine runtime maintainers",
      "content": "Content and asset maintainers",
      "security": "Repository administrators"
    },
    "compatibility": {
      "release_engine_ref": "exact-commit",
      "development_engine_ref": "master",
      "scheduled_cadence": "weekly",
      "update_delivery": "reviewed-pull-request",
      "required_lanes": [
        "pinned-engine",
        "current-engine"
      ],
      "boundaries": [
        "gameplay-compatibility-version",
        "updater-protocol-generation",
        "client-host-runtime-abi"
      ]
    },
    "publication": {
      "template_path": "Examples/PublicRepositoryTemplate",
      "metadata_path": "example-repository.json",
      "asset_provenance_path": "assets/provenance.json",
      "protected_branch": "main",
      "security_advisories_required": true,
      "required_files": [
        ".gitattributes",
        ".gitmodules",
        ".github/CODEOWNERS",
        ".github/PULL_REQUEST_TEMPLATE.md",
        ".github/workflows/current-engine.yml",
        ".github/workflows/pinned-engine.yml",
        "collect-evidence.py",
        "CONTRIBUTING.md",
        "LICENSE",
        "README.md",
        "SECURITY.md",
        "SUPPORT.md",
        "THIRD_PARTY_NOTICES.md",
        "assets/provenance.json",
        "example-repository.json"
      ],
      "copy_files": {
        ".gitattributes": ".gitattributes",
        ".gitmodules": ".gitmodules",
        ".github/CODEOWNERS.template": ".github/CODEOWNERS",
        ".github/PULL_REQUEST_TEMPLATE.md": ".github/PULL_REQUEST_TEMPLATE.md",
        ".github/workflows/current-engine.template.yml": ".github/workflows/current-engine.yml",
        ".github/workflows/pinned-engine.template.yml": ".github/workflows/pinned-engine.yml",
        "collect-evidence.py": "collect-evidence.py",
        "CONTRIBUTING.md": "CONTRIBUTING.md",
        "LICENSE": "LICENSE",
        "README.template.md": "README.md",
        "SECURITY.md": "SECURITY.md",
        "SUPPORT.md": "SUPPORT.md",
        "THIRD_PARTY_NOTICES.md": "THIRD_PARTY_NOTICES.md",
        "assets/provenance.json": "assets/provenance.json",
        "example-repository.template.json": "example-repository.json"
      },
      "placeholders": [
        "{{CODEOWNER}}",
        "{{ENGINE_REVISION}}",
        "{{PRIMARY_CHECK_COMMAND}}",
        "{{REPOSITORY_ID}}",
        "{{REPOSITORY_NAME}}",
        "{{REPOSITORY_SLUG}}",
        "{{SUMMARY}}"
      ]
    }
  },
  "repositories": [
    {
      "id": "project-template",
      "repository": "cvet/fonline-project-template",
      "sequence": 1,
      "tier": "foundation",
      "status": "source-ready",
      "remote": {
        "visibility": "private",
        "state": "source-staged",
        "created_on": "2026-07-20",
        "verified_on": "2026-08-03",
        "default_branch": "main",
        "head_commit": "9946ca42c332a294f8fedd2732e7850a01c1ec27",
        "engine_revision": "9d74c751f5684f80aef3b35a0eb16a8fabf9fa42",
        "required_checks_state": "not-observed"
      },
      "owner": "build_release",
      "display_name": "FOnline Project Template",
      "source_path": "Examples/MinimalProject",
      "primary_check": "python validate.py",
      "source_excludes": [
        "Build/**",
        "Engine/**",
        "Baking/**",
        "Cache/**",
        "Workspace/**",
        "__pycache__/**",
        "*.log",
        "*.pyc"
      ],
      "source_required_files": [
        ".gitignore",
        "CMakeLists.txt",
        "CMakePresets.json",
        "FOnlineStarter.fomain",
        "README.md",
        "Scripts/Starter.fos",
        "StarterServerExtension.cpp",
        "run_starter_smoke.py",
        "validate.py"
      ],
      "depends_on": [],
      "purpose": "Canonical GitHub template and source for the first successful headless-project quickstart.",
      "capabilities": [
        "configure",
        "resource-bake",
        "headless-server",
        "native-extension",
        "remote-call-metadata",
        "deterministic-smoke"
      ],
      "required_checks": [
        "governance-contract",
        "pinned-engine",
        "current-engine",
        "windows-smoke",
        "linux-smoke"
      ],
      "required_artifacts": [
        "headless-server",
        "smoke-log",
        "compatibility-report"
      ],
      "asset_policy": "none",
      "exit_gate": "A clean Windows or Linux host reaches the documented successful server state in under 30 minutes from a tagged exact Engine revision."
    },
    {
      "id": "minimal-multiplayer",
      "repository": "cvet/fonline-minimal-multiplayer",
      "sequence": 2,
      "tier": "tutorial",
      "status": "source-ready",
      "remote": {
        "visibility": "private",
        "state": "reserved",
        "created_on": "2026-07-20",
        "verified_on": "2026-08-03",
        "default_branch": "main",
        "head_commit": "97d232431488125b370be352fdcf28f66e6cbf4f",
        "required_checks_state": "not-observed"
      },
      "owner": "documentation",
      "display_name": "FOnline Minimal Multiplayer",
      "source_path": "Examples/MinimalMultiplayer",
      "primary_check": "python validate.py",
      "source_excludes": [
        "Build/**",
        "Engine/**",
        "Baking/**",
        "Cache/**",
        "Resources/**",
        "ServerResources/**",
        "PlatformBinaries/**",
        "Workspace/**",
        "__pycache__/**",
        "*.log",
        "*.pyc"
      ],
      "source_required_files": [
        ".gitignore",
        "CMakeLists.txt",
        "CMakePresets.json",
        "FOnlineMinimalMultiplayer.fomain",
        "generate_config.py",
        "README.md",
        "Content/StarterContent.fopro",
        "Maps/TutorialMap.fomap",
        "Particles/Documentation.spark",
        "Scripts/Tutorial.fos",
        "assets/provenance.json",
        "package-smoke.json",
        "run_tutorial_smoke.py",
        "tutorial-smoke.json",
        "verify_tutorial_package.py",
        "validate.py"
      ],
      "depends_on": [
        "project-template"
      ],
      "purpose": "Tiny playable vertical slice used by first server, client, content, scripting, persistence, and test tutorials.",
      "capabilities": [
        "one-map-location",
        "player-and-npc",
        "item-interaction",
        "replicated-persisted-property",
        "event-and-remote-call",
        "english-and-russian-text",
        "client-visible-smoke",
        "manifest-driven-gameplay-smoke",
        "native-package-acceptance",
        "mapper-ui-capture",
        "spark-particle-authoring"
      ],
      "required_checks": [
        "governance-contract",
        "pinned-engine",
        "current-engine",
        "windows-smoke",
        "linux-smoke",
        "windows-package",
        "linux-package",
        "tutorial-tag-replay"
      ],
      "required_artifacts": [
        "desktop-client",
        "headless-server",
        "tutorial-report",
        "tutorial-package-evidence",
        "mapper-capture"
      ],
      "asset_policy": "project-original-or-permissive",
      "exit_gate": "Every tutorial checkpoint reproduces from its pinned tag and the final project is understandable without Last Frontier or TLA."
    },
    {
      "id": "content-showcase",
      "repository": "cvet/fonline-content-showcase",
      "sequence": 3,
      "tier": "showcase",
      "status": "source-ready",
      "remote": {
        "visibility": "private",
        "state": "reserved",
        "created_on": "2026-07-20",
        "verified_on": "2026-08-03",
        "default_branch": "main",
        "head_commit": "011dab0d07eef6387609821206b8ee534ec51c3f",
        "required_checks_state": "not-observed"
      },
      "owner": "content",
      "display_name": "FOnline Content Showcase",
      "source_path": "Examples/ContentShowcase",
      "primary_check": "python validate.py",
      "source_excludes": [
        "Build/**",
        "Engine/**",
        "Baking/**",
        "Cache/**",
        "Resources/**",
        "ServerResources/**",
        "PlatformBinaries/**",
        "Workspace/**",
        "WebTests/node_modules/**",
        "__pycache__/**",
        "*.log",
        "*.pyc"
      ],
      "source_required_files": [
        ".gitignore",
        "CMakeLists.txt",
        "CMakePresets.json",
        "FOnlineContentShowcase.fomain",
        "README.md",
        "README.ru.md",
        "ASSET_LICENSE.md",
        "Content/ShowcaseContent.fopro",
        "Maps/ShowcaseMap.fomap",
        "Scripts/Showcase.fos",
        "ShowcaseAssets/Showcase/Audio/ShowcaseChime.wav",
        "ShowcaseAssets/Showcase/Effects/ShowcaseParticle.fofx",
        "ShowcaseAssets/Showcase/Particles/Showcase.spark",
        "ShowcaseAssets/Showcase/Particles/ShowcaseSpark.tga",
        "ShowcaseAssets/Showcase/Sprites/Beacon.fofrm",
        "ShowcaseAssets/Showcase/Sprites/Beacon_0.tga",
        "ShowcaseAssets/Showcase/Sprites/Beacon_1.tga",
        "ShowcaseAssets/Showcase/Sprites/Beacon_2.tga",
        "ShowcaseAssets/Showcase/Sprites/Beacon_3.tga",
        "ShowcaseAssets/Showcase/Sprites/Beacon_4.tga",
        "ShowcaseAssets/Showcase/Sprites/Beacon_5.tga",
        "ShowcaseAssets/Showcase/Sprites/ShowcasePanel.tga",
        "ShowcaseAssets/Showcase/Tiles/ShowcaseFloor.tga",
        "assets/provenance.json",
        "quality/performance-budget.json",
        "captures/capture-contract.json",
        "captures/windows-direct3d11.png",
        "captures/linux-opengl.png",
        "generate_assets.py",
        "generate_config.py",
        "run_showcase_smoke.py",
        "showcase-smoke.json",
        "capture_showcase.py",
        "showcase-capture.json",
        "showcase-web-package.json",
        "showcase-web-runtime.json",
        "capture_showcase_web.py",
        "capture_showcase_web.mjs",
        "captures/web-webgl2.png",
        "WebTests/package.json",
        "WebTests/package-lock.json",
        "verify_showcase.py",
        "validate.py"
      ],
      "depends_on": [
        "project-template",
        "minimal-multiplayer"
      ],
      "purpose": "Presentation-quality gallery for rendering and authoring capabilities without a large gameplay codebase.",
      "capabilities": [
        "sprites-and-animation",
        "lighting-and-effects",
        "particles-and-audio",
        "mapper-source-assets",
        "cross-backend-captures",
        "web-build"
      ],
      "required_checks": [
        "governance-contract",
        "pinned-engine",
        "current-engine",
        "asset-provenance",
        "performance-budget",
        "web-build",
        "web-package",
        "web-runtime",
        "capture-reproduction"
      ],
      "required_artifacts": [
        "web-build",
        "web-package",
        "webgl-capture",
        "desktop-build",
        "capture-set",
        "asset-provenance-report"
      ],
      "asset_policy": "audited-public-or-project-original",
      "exit_gate": "A tagged build produces the public showcase and reproducible captures with complete machine-readable rights and provenance."
    },
    {
      "id": "native-extension-sample",
      "repository": "cvet/fonline-native-extension-sample",
      "sequence": 4,
      "tier": "advanced",
      "status": "source-ready",
      "remote": {
        "visibility": "private",
        "state": "reserved",
        "created_on": "2026-07-20",
        "verified_on": "2026-08-03",
        "default_branch": "main",
        "head_commit": "97823816ab333a62aced43edd4daafa19c5fee22",
        "required_checks_state": "not-observed"
      },
      "owner": "runtime",
      "display_name": "FOnline Native Extension Sample",
      "source_path": "Examples/NativeExtensionSample",
      "primary_check": "python validate.py",
      "source_excludes": [
        "Build/**",
        "Engine/**",
        "Baking/**",
        "Cache/**",
        "Resources/**",
        "ServerResources/**",
        "PlatformBinaries/**",
        "Workspace/**",
        "__pycache__/**",
        "*.log",
        "*.pyc"
      ],
      "source_required_files": [
        ".gitignore",
        "CMakeLists.txt",
        "CMakePresets.json",
        "FOnlineNativeExtensionSample.fomain",
        "README.md",
        "README.ru.md",
        "Scripts/NativeExtensionSample.fos",
        "SourceExt/NativeExtensionCore.cpp",
        "SourceExt/NativeExtensionCore.h",
        "SourceExt/ServerExtension.cpp",
        "Tests/NativeExtensionCoreTest.cpp",
        "assets/provenance.json",
        "run_native_extension_smoke.py",
        "validate.py"
      ],
      "depends_on": [
        "project-template"
      ],
      "purpose": "Advanced minimal example of project-native C++ composition, lifecycle hooks, script exports, tests, and ABI review.",
      "capabilities": [
        "lifecycle-hook",
        "script-export",
        "role-specific-source",
        "focused-native-test",
        "abi-and-compatibility-review"
      ],
      "required_checks": [
        "governance-contract",
        "pinned-engine",
        "current-engine",
        "native-unit-test",
        "native-extension-contract"
      ],
      "required_artifacts": [
        "native-test-report",
        "headless-server",
        "compatibility-report"
      ],
      "asset_policy": "none",
      "exit_gate": "The tagged sample demonstrates one complete native extension path without game-specific services and passes the generated extension contract checks."
    }
  ]
}
