Solution Structure
Current project layout and responsibilities.
Solution Tree
moongatev2/
├── src/
│ ├── Moongate.Abstractions
│ ├── Moongate.Core
│ ├── Moongate.Network
│ ├── Moongate.Network.Packets
│ ├── Moongate.Generators
│ ├── Moongate.Persistence
│ ├── Moongate.Scripting
│ ├── Moongate.Server
│ ├── Moongate.Server.Http
│ ├── Moongate.Server.Metrics
│ └── Moongate.UO.Data
├── tests/
│ └── Moongate.Tests
├── docs/
├── scripts/
└── stack/
Module Summary
Moongate.Abstractions- base service abstractions shared across modules.
Moongate.Core- shared types (
Serial, geometry, json helpers, utility classes).
- shared types (
Moongate.Network- TCP transport, spans, network middleware pipeline.
Moongate.Network.Packets- packet contracts and concrete packet implementations.
Moongate.Generators- unified source generators for:
- packet table/definitions
- packet listener bootstrap registration
- metrics snapshot mapping
- script module registry
- server version metadata (
VersionUtils)
- unified source generators for:
Moongate.Persistence- snapshot/journal storage and repositories.
Moongate.Scripting- Lua engine and module bridge.
Moongate.Server- composition root, bootstrap, runtime services and handlers.
Moongate.Server.Http- HTTP service host and metric exposure endpoints.
Moongate.Server.Metrics- metrics provider abstractions and snapshot collection.
Moongate.UO.Data- UO entities, enums, templates, gameplay data contracts.
Runtime Composition
MoongateBootstrap in Moongate.Server wires all services via DryIoc, then starts services ordered by registration priority.
Startup also handles:
- directory initialization
- logger setup
- config load/merge
- UO directory validation
- data asset copy bootstrap
- packet listener registration
Previous: Architecture TOC | Next: Source Generators