···4545 {
4646 var actor = HttpContext.GetActor();
4747 var note = await db.Notes
4848+ .IncludeUnpublished() // the intention is to reuse this mechanism for interaction controls as well, so let remote instances see unpublished notes
4849 .IncludeCommonProperties()
4950 .EnsureVisibleFor(actor)
5051 .FirstOrDefaultAsync(p => p.Id == id);
···6566 var actor = HttpContext.GetActor();
66676768 var note = await db.Notes
6969+ .IncludeUnpublished()
6870 .IncludeCommonProperties()
6971 .EnsureVisibleFor(actor)
7072 .Where(p => p.Id == id && p.UserHost == null)
···2424 [J("contact")] public InstanceContact Contact => new(adminContact);
2525 [J("registrations")] public InstanceRegistrations Registrations => new(config.Security);
2626 [J("configuration")] public InstanceConfigurationV2 Configuration => new(config.Instance);
2727+ [J("api_versions")] public InstanceApiVersions ApiVersions => new();
27282829 [J("usage")] public required InstanceUsage Usage { get; set; }
2930···33343435 [J("thumbnail")] public required InstanceThumbnail Thumbnail { get; set; }
35363737+3638 //TODO: add the rest
3939+}
4040+4141+public class InstanceApiVersions
4242+{
4343+ // this is modeled after https://codeberg.org/fediverse-pl/maep/pulls/2, however since the extensions aren't submitted
4444+ // there (yet?) we'll use our own namespace for it
4545+ [J("net.iceshrimp.scheduled_boosts")] public ushort ScheduledBoosts { get; set; } = 1;
3746}
38473948public class InstanceConfigurationV2(Config.InstanceSection config)