GridPlacement 6.0 (C#-first) — Docs Entry
This folder is the entrypoint for the GridPlacement 6.0 (C#-first) line.
6.0 Clean API Policy (Release Start)
- Goal: 6.0 should start with a clean public API surface (no unused legacy carryover types).
- Rule: If a type has no call sites and is not part of the intended 6.0 contract, it should be:
- deleted, or
- reduced to internal visibility (if it is purely legacy/compat notes).
- Gate: Every cleanup batch must keep
dotnet testgreen.
Recent Cleanups (6.0)
Visibility reduced (internal)
GridPlacement.Core.Types.OwnerGridPlacement.Core.Types.GBOwner
Removed obsolete types (unused)
GridPlacement.Core.Services.Targeting.GridTargetingConfigurationGridPlacement.Core.Interfaces.ITargetingStateGridPlacement.Core.State.Building.BuildingState(legacy POCS)GridBuilding.Core.Domain.State.OwnerContext(legacy 5.x bundle)
Removed obsolete members (unused)
GridPlacement.Core.Systems.Placement.PlacementWorkflowOrchestrator.ExecutePlacement(...)(legacy overload)
Scenario Gate (PlacementWorkflow)
- Added
PlacementWorkflowOrchestrator.TryPlaceValidatedForUser(...)as the Core “front door” for:- validate → conditional execute
- event emission in both valid/invalid paths
- Added scenario coverage in
PlacementWorkflowOrchestratorIntegrationTests(valid/invalid + hang-guard).
What to read (in order)
../README.md(this docs root and layout)../GRIDBUILDING_VERSION_LIFECYCLE.md../Core/(C# core architecture, patterns, and tests)../Godot/(Godot adapter boundary and engine-facing plans)./Godot/USER_SCOPE_ROOT_INTEGRATION.md(per-user scope roots + input provider ownership)./Godot/LOGGING.md(Godot-layer logging + override pattern)../Migration/(migration priorities)../Roadmap/PRODUCTION_ROADMAP.md
Where the docs live (canonical folders)
We keep docs layer/topic-first. For 6.0, canonical folders are:
../Core/../Godot/../Migration/../Roadmap/../design/
6.0 rules of thumb
- Canonical runtime logic and tests are C#.
- Godot code should be thin adapters around Core services.
- If a doc is only about 6.0 behavior, keep it here or under the relevant layer folder.