Table of Contents

Namespace MoonBark.GridPlacement.Core.Services

Classes

CalculatorCacheStatistics

Calculator cache statistics.

CalculatorValidationResult

Calculator validation result.

PlacedEntityData

Data transfer object for serialized placed entity state. Pure C# data structure with no Godot dependencies.

Only finalized placed entities are serialized. Active placement states (ghost previews, mid-move operations, flip/rotate in progress) are intentionally excluded — games resume with a clean placement state.

SaveLoadService

Implementation of domain save/load service. Requires IOccupancyService to enumerate placed entities. This is a pure-domain implementation - the ECS-specific one belongs in MoonBark.GridPlacement.ECS.

Interfaces

IAsyncCalculator<TInput, TOutput>

Async calculator interface for long-running calculations.

ICachedCalculator<TInput, TOutput>

Cached calculator interface for performance-optimized calculations.

ICalculator

Base interface for all calculator implementations Provides standardized calculation patterns across the codebase

ICalculatorConfiguration

Calculator configuration interface.

ICalculator<TInput, TOutput>

Generic calculator interface for type-specific calculations

IConfigurableCalculator<TInput, TOutput, TConfig>

Configurable calculator interface for parameterized calculations.

IEcsSaveLoadService

Interface for ECS-based save/load service. Provides clean serialization/deserialization of placed entities without Godot dependencies.

IPlacementModeService

Service interface for placement operations. Pure C# contract with no Godot dependencies.

ISaveLoadService

Pure domain implementation of save/load service interface. This service requires an occupancy source to serialize/deserialize placed entities. The actual ECS-based implementation belongs in MoonBark.GridPlacement.ECS.