Grid Placement

Production Roadmap - GridPlacement 6.0 C# Plugin

Overview

This document outlines the roadmap for taking the GridPlacement 6.0 C# plugin to production-ready state.

Current reality (Dec 2025):

  • The service + adapter direction is correct (Core-first, Godot wrappers thin).
  • Core scaffolding exists (e.g. ServiceRegistry, IPlacementService, IPlacementCommands, targeting sensor/controller).
  • Godot-side test gate is not yet reliable, and production metrics (coverage, security, CI) are not yet valid.

Production Readiness Criteria

Must-Have (Required for Production)

  • Core build + tests are a reliable gate (Core test projects compile and run in CI)
  • Godot build + tests are a reliable gate (thin adapter smokes; no test-host crashes)
  • Clean Core/Godot separation (Core has no Godot dependencies)
  • Architecture Gate: service scopes + command boundaries + supported adapter surface are explicit and implemented (see ROADMAP.md, section “6.0 C# — Execution Roadmap”)
  • Integration Gate: two supported host approaches are documented and viable
    • Approach A: GameComposition.Core is supported as the preferred shared composition foundation across plugins
    • Approach B: host-agnostic integration is supported (manual wiring or alternate DI container; no required global service locator)
    • Boundary requirement: GameUserSessions is optional; GridPlacement must run in single-user and non-authenticated hosts
    • Boundary requirement: no mandatory “current user” global; user/session identity is provided by explicit host entrypoints/adapters
  • GitHub Actions CI/CD pipeline
  • Automated release process
  • Production documentation
  • Security audit complete
  • Performance benchmarks established
  • >90% code coverage
  • Integration test suite
  • Automated regression testing
  • Performance monitoring
  • Error tracking/telemetry

Nice-to-Have (Post-Production)

  • VS Code extension
  • Visual editor tools
  • Advanced debugging tools

Timeline to Production

Phase 1: Foundation (In Progress - Dec 2025)

Status: In Progress

Achievements so far:

  • Core-first architectural direction established (service + adapter).
  • ServiceRegistry exists in Core and can create scopes.
  • Minimal Godot ServiceCompositionRoot exists for wiring.
  • Targeting Phase 1 adapter exists (TargetSensor2D, TargetingController2D).

Phase 2: Production Preparation (Q1 2026)

Target: Production-ready state Timeline: January - March 2026

Architecture Gate (must pass before Beta)

  • Done when:
    • DI lifetimes/scopes are documented (global/session/user) and reflected in code usage (ServiceRegistry, scopes, IUserScope).
    • Supported Godot adapter surface is enumerated (Canonical / Optional / Legacy-only).
    • Canonical command/event flow is documented for UI/input and adapter notifications (IPlacementCommands etc.).
    • Targeting adapter boundary is enforced (controllers translate input; sensors own physics/query nodes; Core adapter is the single cursor writer).
    • ADRs exist for core decisions (registry + scopes, adapter test boundary, targeting sensor plan).

Integration Gate (must pass before Beta)

  • Done when:
    • Approach A (GameComposition-first) has a minimal reference host integration example (2+ plugins composed together).
    • Approach B (host-agnostic) has a documented manual wiring recipe including the minimal required service graph.
    • Godot ServiceCompositionRoot is clearly positioned as optional engine glue, not the only way to run the Core.
    • Per-plugin Integrations subprojects exist to prove compatibility (tests) and provide optional integration helpers:
      • Base runtime projects remain host-agnostic (no mandatory GameComposition / GameUserSessions deps).
      • Integration projects are allowed to reference GameComposition / GameUserSessions for compile-time + wiring verification.
      • Integrations do not depend on other gameplay plugins (no GridPlacementWorldTime coupling).
    • The integration story does not contradict ROADMAP.md.

Test Harness Pattern Scope (5.1 only)

  • The current test harness patterns (Godot project + GdUnit + orchestrator runner) are scoped to the 5.1 GDScript legacy track.
  • 6.0 C# testing strategy is intentionally deferred and will be decided separately.

Port-forward posture:

  • Prefer improving architecture and integration patterns in 6.0 C# and recommending migration.
  • Avoid introducing a generalized plugin-agnostic composition root framework for 5.1 GDScript users.

Milestones:

2.1 CI Infrastructure (Q1 2026)

  • GitHub Actions pipeline for Core + Godot build/test
  • Local scripts remain supported (ci-build.sh, ci-test.sh, ci-quality.sh, ci-all.sh)
  • Automated release pipeline
  • Version management strategy
  • Artifact publishing

2.2 Documentation & Developer Experience (Q1 2026)

  • Production documentation (install, quickstart, runtime-only vs editor-only boundary)
  • Migration guides (5.x → 6.0, service/adapters)
  • Minimal example scenes demonstrating composition + placement + targeting

2.3 Quality Assurance (Q1 2026)

  • Achieve >90% code coverage
  • Complete integration test suite
  • Godot boundary exception policy (no uncaught C# exceptions in GDScript-facing APIs)
    • Provide non-throwing Try* wrappers/adapters for engine-facing calls (e.g., manipulation, placement)
    • Install global unhandled exception hooks in the Godot host/test harness (fail CI on unhandled exceptions)
    • (Optional) Add analyzer/lint rule: disallow throw in GDScript-callable adapter surface
  • Performance benchmarking
  • Security audit
  • Load testing
  • Compatibility testing

Phase 3: Production Launch (Q2 2026)

Target: Public production release Timeline: April - June 2026

Pre-Launch Checklist:

Beta Testing (April 2026)

  • Internal beta release
  • Beta tester feedback incorporation
  • Critical bug fixes
  • Performance optimization
  • Documentation refinement

Production Release (May 2026)

  • Version 1.0.0 release
  • Production deployment
  • Release announcement
  • Community support channels
  • Monitoring and telemetry setup

Post-Launch Support (June 2026)

  • Bug fix releases
  • Performance optimization
  • Community feedback incorporation
  • Documentation updates

Phase 4: Post-Production Enhancement (Q3-Q4 2026)

Target: Feature expansion and optimization
Target Health Score: 10/10
Timeline: July - December 2026

Focus Areas:

Developer Tools (Q3 2026)

  • VS Code extension
  • Code snippets and templates
  • Enhanced debugging tools
  • Hot reload support

Advanced Features (Q4 2026)

  • Multi-layer grid support
  • Advanced placement validation
  • Procedural generation tools
  • Visual editor plugins

Production Blockers

Critical (Must Fix Before Production)

  1. Core + Godot tests as gates - Core and Godot test projects compile and run reliably (no hidden exclusions; no test-host crashes)
  2. Service scopes + adapter boundaries - explicit and reflected in code + docs (global/session/user, command surfaces, supported adapters)
  3. Security Audit - Required for enterprise adoption

High Priority

  1. Performance Benchmarks - Establish baseline metrics
  2. Integration Tests - Ensure system-level stability
  3. Code Coverage - Achieve >90% target

Medium Priority

  1. Error Telemetry - For production monitoring
  2. Load Testing - For scalability validation
  3. Compatibility Testing - Across Godot versions

Success Metrics

Production Launch Criteria

  • Core tests are a reliable gate (CI)
  • Godot adapter tests are a reliable gate (CI)
  • >90% code coverage (Core)
  • CI pipeline operational (GitHub Actions)
  • Production docs complete
  • Security audit passed

Post-Production Metrics

  • Response time: <100ms for core operations
  • Memory footprint: <50MB for typical usage
  • Test execution time: <5s for full suite
  • Build time: <30s for full build
  • Documentation coverage: 100%
  • Community satisfaction: >4.5/5 stars

Risk Management

Technical Risks

RiskImpactProbabilityMitigation
Breaking API changesHighLowSemantic versioning, deprecation warnings
Performance regressionMediumMediumContinuous benchmarking, automated tests
Security vulnerabilitiesHighLowRegular audits, dependency scanning
Godot version incompatibilityMediumMediumVersion-specific testing, compatibility matrix

Schedule Risks

RiskImpactProbabilityMitigation
CI/CD setup delaysHighMediumPrioritize early, use existing templates
Documentation incompleteMediumLowDedicated documentation sprints
Testing gapsMediumMediumRegular coverage reviews, test planning

Dependencies

External Dependencies

  • Godot Engine 4.x
  • .NET 8.0
  • Chickensoft.GoDotTest 1.3.0
  • GitHub Actions (CI/CD)

Internal Dependencies

  • Core project stability (in progress)
  • Test infrastructure (in progress)
  • Service Registry + scopes (in progress)
  • Documentation system (in progress)

Resources

Team Requirements

  • Lead Developer: Architecture and critical features
  • QA Engineer: Test automation and quality assurance
  • Technical Writer: Documentation and guides
  • DevOps Engineer: CI/CD and infrastructure

Infrastructure Requirements

  • GitHub Actions runners
  • Test environment for Godot
  • Documentation hosting
  • Package registry access

Communication Plan

Internal Updates

  • Weekly progress reports
  • Monthly milestone reviews
  • Quarterly roadmap updates

External Communication

  • Beta release announcement
  • Production launch announcement
  • Regular blog updates
  • Community engagement

Next Steps (Immediate Actions)

  1. This Week:

    • Setup GitHub Actions workflows
    • Create agent setup guide
    • Begin CI/CD implementation
  2. This Month:

    • Complete CI/CD pipeline
    • Establish performance benchmarks
    • Begin documentation sprint
  3. This Quarter:

    • Achieve 9.5/10 health score
    • Complete all production preparation tasks
    • Plan beta release

Version Control

  • Last Updated: December 13, 2025
  • Next Review: January 2026
  • Owner: Development Team
  • Status: In Progress


Note: This roadmap is a living document and will be updated as we progress toward production. Feedback and suggestions are welcome through GitHub issues and discussions.