Interface Comment

interface Comment {
    commentable_id: number;
    commentable_type: "beatmapset" | "build" | "news_post";
    created_at: Date;
    deleted_at: null | Date;
    edited_at: null | Date;
    edited_by_id: null | number;
    id: number;
    legacy_name: null | string;
    message?: string;
    message_html?: string;
    parent_id: null | number;
    pinned: boolean;
    replies_count: number;
    updated_at: Date;
    user_id: null | number;
    votes_count: number;
}

Properties

commentable_id: number
commentable_type: "beatmapset" | "build" | "news_post"

"build" means changelog, like pretty much everywhere in the API

created_at: Date
deleted_at: null | Date
edited_at: null | Date
edited_by_id: null | number
id: number
legacy_name: null | string

I think it's the name used by the person who made the comment before a migration to a new comment system in 2018 or before?

message?: string

Yes comments may not have this property, yes this is stupid

message_html?: string

Yes comments may not have this property, yes this is stupid

parent_id: null | number
pinned: boolean
replies_count: number
updated_at: Date
user_id: null | number

Is null if the author of the comment from the old comment system has no associated osu! user, presumably

votes_count: number