Topic structured data: all posts declared as "mainEntityOfPage"

Google may not really care about sub-types like DiscussionForumPosting and map these to the ancestor type Article instead.
By doing this Discourse might look more like a blog with Articles plus Comments from Googles perspective.

Maybe another way is to make the relations between DiscussionForumPostings more clear:
e.g. by using about - Schema.org Property to declare the parent post inside each answer.

post_1 (mainEntityOfPage)
|
+-- post_2 (about post_1)
|
+-- post_3 (about post_1)
|   |
|   + post_4 (about post_3)
|   + post_6 (about post_3)
|
+ post_5 (about post_1)

There is a discussion on how to use DiscussionForumPosting:

One opinion - see: We have DiscussionForumPosting but no DiscussionForum... · Issue #125 · schemaorg/suggestions-questions-brainstorming · GitHub

The description of DisccussionForumPosting is “A posting to a discussion forum.”.

A typical forum is made up of categories. Categories contain forums, and a forum contains topics. A topic contains 1 or more forum posts.

The description seems to indicate that this schema is for an individual forum post but the example seems to show it is for a topic which can have multiple forum posts from multiple authors.