namespace NeonSprawl.Server.Game.PositionState; /// Maps HTTP routes for authoritative position read API. public static class PositionStateApi { public static WebApplication MapPositionStateApi(this WebApplication app) { app.MapGet( "/game/players/{id}/position", (string id, IPositionStateStore store) => { if (!store.TryGetPosition(id, out var snap)) return Results.NotFound(); var body = new PositionStateResponse { SchemaVersion = PositionStateResponse.CurrentSchemaVersion, PlayerId = id, Position = new PositionVector { X = snap.X, Y = snap.Y, Z = snap.Z }, Sequence = snap.Sequence, }; return Results.Json(body); }); return app; } }