Architecture Overview

GridPlacement 6.0 is a C# architecture with a Friflo ECS workflow layer and a deliberate split between engine-agnostic code and Godot integration code.

This page replaces older public descriptions that framed 6.0 as GDScript ECS or GECS.

Top-level layers

Core Library

GridPlacement.Core owns engine-agnostic concepts and public-facing service contracts.

Examples:

  • placement service contracts
  • grid and targeting abstractions
  • validation result types
  • shared math and supporting domain logic

ECS Layer

GridPlacement.ECS owns the ECS components, systems, and orchestration built around Friflo.Engine.ECS.

This is where the internal development placement workflow becomes data-oriented and system-driven.

Godot Adapter Layer

GridPlacement.Godot translates the Godot scene tree, addon paths, input, and runtime resources into the Core and ECS world.

The Godot layer should not become the place where business rules are reimplemented.

Mental model

1
2
3
4
5
Godot scene or UI input
  -> Godot adapter code
  -> placement or manipulation service entry points
  -> Friflo ECS systems update runtime state
  -> adapter code reflects results back into visuals and Godot nodes

Why this is materially different from 5.0

The 5.0 line is node-first and injector-driven.

The 6.0 line now aims for:

  • typed boundaries
  • more explicit workflow ordering
  • less hidden state coupling
  • clearer separation between domain logic and engine glue

What should be treated as public first

Consumers should start with:

  • setup guidance
  • service-oriented APIs
  • validated workflow commands

Consumers should treat lower-level ECS types as advanced details unless they are extending the runtime intentionally.

Current caveat

This architecture is internal development, not fully GA-hardened.

The ECS build lane is green, but the focused workflow coverage suite is currently failing on the audited branch and older legacy test wiring still exists. Do not mistake that for a clean all-up production gate.

Validated By

  • dotnet build cs/Core/ECS/GridPlacement.ECS.csproj --nologo -v minimal
  • the current release-readiness guidance for the 6.0 internal development line