namespace NeonSprawl.Server.Game.Skills;
/// Maps GET /game/world/skill-definitions (NEO-36).
public static class SkillDefinitionsWorldApi
{
public static WebApplication MapSkillDefinitionsWorldApi(this WebApplication app)
{
app.MapGet(
"/game/world/skill-definitions",
(ISkillDefinitionRegistry registry) =>
{
var defs = registry.GetDefinitionsInIdOrder();
var skills = new List(defs.Count);
foreach (var d in defs)
{
skills.Add(
new SkillDefinitionJson
{
Id = d.Id,
DisplayName = d.DisplayName,
Category = d.Category,
AllowedXpSourceKinds = d.AllowedXpSourceKinds,
});
}
return Results.Json(
new SkillDefinitionsListResponse
{
SchemaVersion = SkillDefinitionsListResponse.CurrentSchemaVersion,
Skills = skills,
});
});
return app;
}
}