Marketplace versioning with embedded resource

It seems like the logic is relatively “rudimentary”. Basically, it requests a “normal” forum topic in “JSON form” (Accept = application/json), which makes the forum return something like this:

{
    "post_stream": {
        "posts": [
            {
                "id": 915487,
                "name": "Nadar",
                "username": "Nadahar",
                "avatar_template": "/user_avatar/community.openhab.org/nadahar/{size}/44246_2.png",
                "created_at": "2024-12-06T17:03:17.715Z",
                "cooked": "<p><img src=\"//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/7/d/7d45afed4a68750673b725367fb37e9f780d6a49.svg\" alt=\"logo\" data-base62-sha1=\"hScZfM1qVuc1EQSv1o96G5SPBgJ\" width=\"384\" height=\"175\"></p>\n<p>This binding integrates generation 3 <a href=\"https://millnorway.com/\" rel=\"noopener nofollow ugc\">Mill devices</a> using the local network only.</p>\n<p>Documentation can be found <a href=\"https://github.com/Nadahar/Mill-LAN-openHAB-Binding/blob/master/bundles/org.openhab.binding.milllan/README.md\" rel=\"noopener nofollow ugc\">here</a>.</p>\n<p>This binding has so far only been tested with Mill panel heaters. If you have access to generation 3 Mill devices of a different type and would like to help me verify that they work as intended, please open a <a href=\"https://github.com/Nadahar/Mill-LAN-openHAB-Binding/issues\" rel=\"noopener nofollow ugc\">GitHub issue</a> or tag me in a forum topic.</p>\n<h2><a name=\"p-915487-changelog-1\" class=\"anchor\" href=\"#p-915487-changelog-1\"></a>Changelog</h2>\n<h3><a name=\"p-915487-version-10-2\" class=\"anchor\" href=\"#p-915487-version-10-2\"></a>Version 1.0</h3>\n<ul>\n<li>initial release</li>\n</ul>\n<h2><a name=\"p-915487-resources-3\" class=\"anchor\" href=\"#p-915487-resources-3\"></a>Resources</h2>\n<p><a href=\"https://github.com/Nadahar/Mill-LAN-openHAB-Binding/releases/download/v1.0.0/org.openhab.binding.milllan-1.0.0.jar\" class=\"onebox\" target=\"_blank\" rel=\"noopener nofollow ugc\">https://github.com/Nadahar/Mill-LAN-openHAB-Binding/releases/download/v1.0.0/org.openhab.binding.milllan-1.0.0.jar</a></p>\n<aside class=\"onebox githubrepo\" data-onebox-src=\"https://github.com/Nadahar/Mill-LAN-openHAB-Binding\">\n  <header class=\"source\">\n\n      <a href=\"https://github.com/Nadahar/Mill-LAN-openHAB-Binding\" target=\"_blank\" rel=\"noopener nofollow ugc\">github.com</a>\n  </header>\n\n  <article class=\"onebox-body\">\n    <div class=\"github-row\" data-github-private-repo=\"false\">\n  <img width=\"690\" height=\"344\" src=\"https://opengraph.githubassets.com/7390dbc8fb81d819103b1ad81939aaae/Nadahar/Mill-LAN-openHAB-Binding\" class=\"thumbnail\">\n\n  <h3><a href=\"https://github.com/Nadahar/Mill-LAN-openHAB-Binding\" target=\"_blank\" rel=\"noopener nofollow ugc\">GitHub - Nadahar/Mill-LAN-openHAB-Binding</a></h3>\n\n    <p><span class=\"github-repo-description\">Contribute to Nadahar/Mill-LAN-openHAB-Binding development by creating an account on GitHub.</span></p>\n</div>\n\n  </article>\n\n  <div class=\"onebox-metadata\">\n    \n    \n  </div>\n\n  <div style=\"clear: both\"></div>\n</aside>\n",
                "post_number": 1,
                "post_type": 1,
                "updated_at": "2024-12-06T19:06:21.731Z",
                "reply_count": 0,
                "reply_to_post_number": null,
                "quote_count": 0,
                "incoming_link_count": 8,
                "reads": 27,
                "readers_count": 26,
                "score": 145.4,
                "yours": false,
                "topic_id": 160688,
                "topic_slug": "mill-lan-binding-4-1-0-0-5-0-0-0",
                "display_username": "Nadar",
                "primary_group_name": null,
                "flair_name": null,
                "flair_url": null,
                "flair_bg_color": null,
                "flair_color": null,
                "flair_group_id": null,
                "version": 4,
                "can_edit": false,
                "can_delete": false,
                "can_recover": false,
                "can_see_hidden_post": false,
                "can_wiki": false,
                "link_counts": [
                    {
                        "url": "https://github.com/Nadahar/Mill-LAN-openHAB-Binding/blob/master/bundles/org.openhab.binding.milllan/README.md",
                        "internal": false,
                        "reflection": false,
                        "title": "Mill-LAN-openHAB-Binding/bundles/org.openhab.binding.milllan/README.md at master · Nadahar/Mill-LAN-openHAB-Binding · GitHub",
                        "clicks": 4
                    },
                    {
                        "url": "https://millnorway.com/",
                        "internal": false,
                        "reflection": false,
                        "clicks": 4
                    },
                    {
                        "url": "https://github.com/Nadahar/Mill-LAN-openHAB-Binding",
                        "internal": false,
                        "reflection": false,
                        "title": "GitHub - Nadahar/Mill-LAN-openHAB-Binding",
                        "clicks": 3
                    },
                    {
                        "url": "https://github.com/Nadahar/Mill-LAN-openHAB-Binding/releases/download/v1.0.0/org.openhab.binding.milllan-1.0.0.jar",
                        "internal": false,
                        "reflection": false,
                        "clicks": 1
                    },
                    {
                        "url": "https://github.com/Nadahar/Mill-LAN-openHAB-Binding/issues",
                        "internal": false,
                        "reflection": false,
                        "title": "Issues · Nadahar/Mill-LAN-openHAB-Binding · GitHub",
                        "clicks": 1
                    }
                ],
                "read": true,
                "user_title": null,
                "bookmarked": false,
                "actions_summary": [
                    {
                        "id": 2,
                        "count": 3
                    }
                ],
                "moderator": false,
                "admin": false,
                "staff": false,
                "user_id": 36689,
                "hidden": false,
                "trust_level": 2,
                "deleted_at": null,
                "user_deleted": false,
                "edit_reason": null,
                "can_view_edit_history": false,
                "wiki": false,
                "can_accept_answer": false,
                "can_unaccept_answer": false,
                "accepted_answer": false,
                "topic_accepted_answer": false
            }
        ],
        "stream": [
            915487
        ]
    },
    "timeline_lookup": [
        [
            1,
            29
        ]
    ],
    "suggested_topics": [
        {
            "id": 156830,
            "title": "BTHome Binding [4.0.0.0;5.0.0.0)",
            "fancy_title": "BTHome Binding [4.0.0.0;5.0.0.0)",
            "slug": "bthome-binding-4-0-0-0-5-0-0-0",
            "posts_count": 2,
            "reply_count": 0,
            "highest_post_number": 2,
            "image_url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/a/b/ab89175812b590088328f0ebb779adcb1f007566.png",
            "created_at": "2024-06-22T18:42:37.226Z",
            "last_posted_at": "2024-06-25T19:44:40.768Z",
            "bumped": true,
            "bumped_at": "2024-06-25T19:44:40.768Z",
            "archetype": "regular",
            "unseen": false,
            "pinned": false,
            "unpinned": null,
            "visible": true,
            "closed": false,
            "archived": false,
            "bookmarked": null,
            "liked": null,
            "thumbnails": [
                {
                    "max_width": null,
                    "max_height": null,
                    "width": 868,
                    "height": 256,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/a/b/ab89175812b590088328f0ebb779adcb1f007566.png"
                },
                {
                    "max_width": 800,
                    "max_height": 800,
                    "width": 800,
                    "height": 235,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/a/b/ab89175812b590088328f0ebb779adcb1f007566_2_800x235.png"
                },
                {
                    "max_width": 600,
                    "max_height": 600,
                    "width": 600,
                    "height": 176,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/a/b/ab89175812b590088328f0ebb779adcb1f007566_2_600x176.png"
                },
                {
                    "max_width": 400,
                    "max_height": 400,
                    "width": 400,
                    "height": 117,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/a/b/ab89175812b590088328f0ebb779adcb1f007566_2_400x117.png"
                },
                {
                    "max_width": 300,
                    "max_height": 300,
                    "width": 300,
                    "height": 88,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/a/b/ab89175812b590088328f0ebb779adcb1f007566_2_300x88.png"
                },
                {
                    "max_width": 200,
                    "max_height": 200,
                    "width": 200,
                    "height": 58,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/a/b/ab89175812b590088328f0ebb779adcb1f007566_2_200x58.png"
                }
            ],
            "tags": [
                "binding",
                "published",
                "stable"
            ],
            "tags_descriptions": {},
            "like_count": 0,
            "views": 297,
            "category_id": 73,
            "featured_link": null,
            "has_accepted_answer": false,
            "posters": [
                {
                    "extras": "latest single",
                    "description": "Original Poster, Most Recent Poster",
                    "user": {
                        "id": 25408,
                        "username": "seime",
                        "name": "Arne S",
                        "avatar_template": "/user_avatar/community.openhab.org/seime/{size}/38320_2.png",
                        "trust_level": 2
                    }
                }
            ]
        },
        {
            "id": 153785,
            "title": "Radio Browser Binding [4.0.0;4.1.9]",
            "fancy_title": "Radio Browser Binding [4.0.0;4.1.9]",
            "slug": "radio-browser-binding-4-0-0-4-1-9",
            "posts_count": 21,
            "reply_count": 10,
            "highest_post_number": 21,
            "image_url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/3/b/3bcdc6663c231a91b969c9eb89a208feccc74dc8.png",
            "created_at": "2024-02-10T04:46:12.058Z",
            "last_posted_at": "2024-04-10T20:26:23.711Z",
            "bumped": true,
            "bumped_at": "2024-04-10T20:26:23.711Z",
            "archetype": "regular",
            "unseen": false,
            "pinned": false,
            "unpinned": null,
            "visible": true,
            "closed": false,
            "archived": false,
            "bookmarked": null,
            "liked": null,
            "thumbnails": [
                {
                    "max_width": null,
                    "max_height": null,
                    "width": 512,
                    "height": 512,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/3/b/3bcdc6663c231a91b969c9eb89a208feccc74dc8.png"
                },
                {
                    "max_width": 400,
                    "max_height": 400,
                    "width": 400,
                    "height": 400,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/3/b/3bcdc6663c231a91b969c9eb89a208feccc74dc8_2_400x400.png"
                },
                {
                    "max_width": 300,
                    "max_height": 300,
                    "width": 300,
                    "height": 300,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/3/b/3bcdc6663c231a91b969c9eb89a208feccc74dc8_2_300x300.png"
                },
                {
                    "max_width": 200,
                    "max_height": 200,
                    "width": 200,
                    "height": 200,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/3/b/3bcdc6663c231a91b969c9eb89a208feccc74dc8_2_200x200.png"
                }
            ],
            "tags": [
                "binding",
                "published",
                "beta"
            ],
            "tags_descriptions": {},
            "like_count": 13,
            "views": 1316,
            "category_id": 73,
            "featured_link": null,
            "has_accepted_answer": false,
            "posters": [
                {
                    "extras": "latest",
                    "description": "Original Poster, Most Recent Poster",
                    "user": {
                        "id": 1164,
                        "username": "matt1",
                        "name": "Skinah",
                        "avatar_template": "/user_avatar/community.openhab.org/matt1/{size}/19930_2.png",
                        "trust_level": 2
                    }
                },
                {
                    "extras": null,
                    "description": "Frequent Poster",
                    "user": {
                        "id": 42973,
                        "username": "Baschtlwaschtl",
                        "name": "Sebastian ",
                        "avatar_template": "/user_avatar/community.openhab.org/baschtlwaschtl/{size}/70481_2.png",
                        "trust_level": 2
                    }
                },
                {
                    "extras": null,
                    "description": "Frequent Poster",
                    "user": {
                        "id": 32410,
                        "username": "sebSmarthome",
                        "name": "Sébastien Fremion",
                        "avatar_template": "/user_avatar/community.openhab.org/sebsmarthome/{size}/112962_2.png",
                        "primary_group_name": "sustainingmembers",
                        "flair_name": "sustainingmembers",
                        "flair_url": "far-smile",
                        "flair_color": "FFAA00",
                        "flair_group_id": 45,
                        "trust_level": 2
                    }
                },
                {
                    "extras": null,
                    "description": "Frequent Poster",
                    "user": {
                        "id": 17972,
                        "username": "miwok",
                        "name": "ND",
                        "avatar_template": "/user_avatar/community.openhab.org/miwok/{size}/33858_2.png",
                        "trust_level": 2
                    }
                }
            ]
        },
        {
            "id": 153095,
            "title": "Manually install addons on Ubuntu",
            "fancy_title": "Manually install addons on Ubuntu",
            "slug": "manually-install-addons-on-ubuntu",
            "posts_count": 11,
            "reply_count": 6,
            "highest_post_number": 11,
            "image_url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/3/c/3ce0f37d40824aacd8fec11ca068c3d313590f15.png",
            "created_at": "2024-01-17T09:46:02.798Z",
            "last_posted_at": "2024-01-21T23:05:30.340Z",
            "bumped": true,
            "bumped_at": "2024-01-21T23:05:30.340Z",
            "archetype": "regular",
            "unseen": false,
            "pinned": false,
            "unpinned": null,
            "visible": true,
            "closed": false,
            "archived": false,
            "bookmarked": null,
            "liked": null,
            "thumbnails": [
                {
                    "max_width": null,
                    "max_height": null,
                    "width": 613,
                    "height": 102,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/3/c/3ce0f37d40824aacd8fec11ca068c3d313590f15.png"
                },
                {
                    "max_width": 600,
                    "max_height": 600,
                    "width": 600,
                    "height": 99,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/3/c/3ce0f37d40824aacd8fec11ca068c3d313590f15_2_600x99.png"
                },
                {
                    "max_width": 400,
                    "max_height": 400,
                    "width": 400,
                    "height": 66,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/3/c/3ce0f37d40824aacd8fec11ca068c3d313590f15_2_400x66.png"
                },
                {
                    "max_width": 300,
                    "max_height": 300,
                    "width": 300,
                    "height": 49,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/3/c/3ce0f37d40824aacd8fec11ca068c3d313590f15_2_300x49.png"
                },
                {
                    "max_width": 200,
                    "max_height": 200,
                    "width": 200,
                    "height": 33,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/3/c/3ce0f37d40824aacd8fec11ca068c3d313590f15_2_200x33.png"
                }
            ],
            "tags": [
                "binding",
                "beta"
            ],
            "tags_descriptions": {},
            "like_count": 0,
            "views": 606,
            "category_id": 73,
            "featured_link": null,
            "has_accepted_answer": true,
            "posters": [
                {
                    "extras": null,
                    "description": "Original Poster",
                    "user": {
                        "id": 44290,
                        "username": "DarkoG",
                        "name": "Darko",
                        "avatar_template": "/user_avatar/community.openhab.org/darkog/{size}/67359_2.png",
                        "trust_level": 2
                    }
                },
                {
                    "extras": "latest",
                    "description": "Most Recent Poster, Accepted Answer",
                    "user": {
                        "id": 33523,
                        "username": "jimtng",
                        "name": "jimtng",
                        "avatar_template": "/user_avatar/community.openhab.org/jimtng/{size}/98543_2.png",
                        "trust_level": 2
                    }
                },
                {
                    "extras": null,
                    "description": "Frequent Poster",
                    "user": {
                        "id": 23331,
                        "username": "Bigdesaster",
                        "name": "Chris",
                        "avatar_template": "/letter_avatar_proxy/v4/letter/b/b2d939/{size}.png",
                        "trust_level": 2
                    }
                }
            ]
        },
        {
            "id": 155227,
            "title": "Ephemeris Binding [4.0.0.0;4.2.0.0)",
            "fancy_title": "Ephemeris Binding [4.0.0.0;4.2.0.0)",
            "slug": "ephemeris-binding-4-0-0-0-4-2-0-0",
            "posts_count": 36,
            "reply_count": 28,
            "highest_post_number": 36,
            "image_url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/1/d/1d29a85573fc337f5f0306daebb0fa4a77e825c8.jpeg",
            "created_at": "2024-04-05T15:00:01.930Z",
            "last_posted_at": "2024-12-30T10:47:56.819Z",
            "bumped": true,
            "bumped_at": "2024-12-30T10:47:56.819Z",
            "archetype": "regular",
            "unseen": false,
            "pinned": false,
            "unpinned": null,
            "visible": true,
            "closed": false,
            "archived": false,
            "bookmarked": null,
            "liked": null,
            "thumbnails": [
                {
                    "max_width": null,
                    "max_height": null,
                    "width": 225,
                    "height": 225,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/1/d/1d29a85573fc337f5f0306daebb0fa4a77e825c8.jpeg"
                },
                {
                    "max_width": 200,
                    "max_height": 200,
                    "width": 200,
                    "height": 200,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/1/d/1d29a85573fc337f5f0306daebb0fa4a77e825c8_2_200x200.jpeg"
                }
            ],
            "tags": [
                "binding",
                "beta"
            ],
            "tags_descriptions": {},
            "like_count": 19,
            "views": 1476,
            "category_id": 73,
            "featured_link": null,
            "has_accepted_answer": false,
            "posters": [
                {
                    "extras": null,
                    "description": "Original Poster",
                    "user": {
                        "id": 302,
                        "username": "glhopital",
                        "name": "Gaël L'hopital",
                        "avatar_template": "/user_avatar/community.openhab.org/glhopital/{size}/91632_2.png",
                        "trust_level": 2
                    }
                },
                {
                    "extras": null,
                    "description": "Frequent Poster",
                    "user": {
                        "id": 10046,
                        "username": "LukaNoah",
                        "name": "Heiko Hegewald",
                        "avatar_template": "/letter_avatar_proxy/v4/letter/l/bc79bd/{size}.png",
                        "trust_level": 2
                    }
                },
                {
                    "extras": null,
                    "description": "Frequent Poster",
                    "user": {
                        "id": 6882,
                        "username": "dmartinpro",
                        "name": "David",
                        "avatar_template": "/user_avatar/community.openhab.org/dmartinpro/{size}/71639_2.png",
                        "trust_level": 2
                    }
                },
                {
                    "extras": null,
                    "description": "Frequent Poster",
                    "user": {
                        "id": 53759,
                        "username": "kmcbride3",
                        "name": "KM",
                        "avatar_template": "/letter_avatar_proxy/v4/letter/k/7ea924/{size}.png",
                        "trust_level": 1
                    }
                },
                {
                    "extras": "latest",
                    "description": "Most Recent Poster",
                    "user": {
                        "id": 37472,
                        "username": "laursen",
                        "name": "Jacob Laursen",
                        "avatar_template": "/letter_avatar_proxy/v4/letter/l/dfb087/{size}.png",
                        "primary_group_name": "maintainers",
                        "flair_name": "maintainers",
                        "flair_url": "fa-star",
                        "flair_color": "FF6600",
                        "flair_group_id": 42,
                        "trust_level": 3
                    }
                }
            ]
        },
        {
            "id": 159482,
            "title": "AquaTemp Binding [4.1.0.0;5.0.0.0)",
            "fancy_title": "AquaTemp Binding [4.1.0.0;5.0.0.0)",
            "slug": "aquatemp-binding-4-1-0-0-5-0-0-0",
            "posts_count": 1,
            "reply_count": 0,
            "highest_post_number": 1,
            "image_url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/6/c/6c999d0c2f272eeef05d24473fc0db8d41ab3115.png",
            "created_at": "2024-10-06T20:15:09.399Z",
            "last_posted_at": "2024-10-06T20:15:09.507Z",
            "bumped": true,
            "bumped_at": "2024-10-06T20:25:07.261Z",
            "archetype": "regular",
            "unseen": false,
            "pinned": false,
            "unpinned": null,
            "visible": true,
            "closed": false,
            "archived": false,
            "bookmarked": null,
            "liked": null,
            "thumbnails": [
                {
                    "max_width": null,
                    "max_height": null,
                    "width": 480,
                    "height": 480,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/6/c/6c999d0c2f272eeef05d24473fc0db8d41ab3115.png"
                },
                {
                    "max_width": 400,
                    "max_height": 400,
                    "width": 400,
                    "height": 400,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/6/c/6c999d0c2f272eeef05d24473fc0db8d41ab3115_2_400x400.png"
                },
                {
                    "max_width": 300,
                    "max_height": 300,
                    "width": 300,
                    "height": 300,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/6/c/6c999d0c2f272eeef05d24473fc0db8d41ab3115_2_300x300.png"
                },
                {
                    "max_width": 200,
                    "max_height": 200,
                    "width": 200,
                    "height": 200,
                    "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/6/c/6c999d0c2f272eeef05d24473fc0db8d41ab3115_2_200x200.png"
                }
            ],
            "tags": [
                "binding",
                "published",
                "stable"
            ],
            "tags_descriptions": {},
            "like_count": 0,
            "views": 47,
            "category_id": 73,
            "featured_link": null,
            "has_accepted_answer": false,
            "posters": [
                {
                    "extras": "latest single",
                    "description": "Original Poster, Most Recent Poster",
                    "user": {
                        "id": 20125,
                        "username": "rogrun",
                        "name": "Ronny Grun",
                        "avatar_template": "/user_avatar/community.openhab.org/rogrun/{size}/82027_2.png",
                        "trust_level": 2
                    }
                }
            ]
        }
    ],
    "tags": [
        "binding",
        "published",
        "stable"
    ],
    "tags_descriptions": {},
    "id": 160688,
    "title": "Mill LAN Binding [4.1.0.0;5.0.0.0)",
    "fancy_title": "Mill LAN Binding [4.1.0.0;5.0.0.0)",
    "posts_count": 1,
    "created_at": "2024-12-06T17:03:17.587Z",
    "views": 44,
    "reply_count": 0,
    "like_count": 3,
    "last_posted_at": "2024-12-06T17:03:17.715Z",
    "visible": true,
    "closed": false,
    "archived": false,
    "has_summary": false,
    "archetype": "regular",
    "slug": "mill-lan-binding-4-1-0-0-5-0-0-0",
    "category_id": 73,
    "word_count": 137,
    "deleted_at": null,
    "user_id": 36689,
    "featured_link": null,
    "pinned_globally": false,
    "pinned_at": null,
    "pinned_until": null,
    "image_url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/7/d/7d45afed4a68750673b725367fb37e9f780d6a49.svg",
    "slow_mode_seconds": 0,
    "draft": null,
    "draft_key": "topic_160688",
    "draft_sequence": null,
    "unpinned": null,
    "pinned": false,
    "current_post_number": 1,
    "highest_post_number": 1,
    "deleted_by": null,
    "actions_summary": [
        {
            "id": 4,
            "count": 0,
            "hidden": false,
            "can_act": false
        },
        {
            "id": 8,
            "count": 0,
            "hidden": false,
            "can_act": false
        },
        {
            "id": 10,
            "count": 0,
            "hidden": false,
            "can_act": false
        },
        {
            "id": 7,
            "count": 0,
            "hidden": false,
            "can_act": false
        }
    ],
    "chunk_size": 20,
    "bookmarked": false,
    "topic_timer": null,
    "message_bus_last_id": 0,
    "participant_count": 1,
    "show_read_indicator": false,
    "thumbnails": [
        {
            "max_width": null,
            "max_height": null,
            "width": 512,
            "height": 234,
            "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/7/d/7d45afed4a68750673b725367fb37e9f780d6a49.svg"
        },
        {
            "max_width": 400,
            "max_height": 400,
            "width": 400,
            "height": 182,
            "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/7/d/7d45afed4a68750673b725367fb37e9f780d6a49_2_400x182.svg"
        },
        {
            "max_width": 300,
            "max_height": 300,
            "width": 300,
            "height": 137,
            "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/7/d/7d45afed4a68750673b725367fb37e9f780d6a49_2_300x137.svg"
        },
        {
            "max_width": 200,
            "max_height": 200,
            "width": 200,
            "height": 91,
            "url": "//community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/optimized/3X/7/d/7d45afed4a68750673b725367fb37e9f780d6a49_2_200x91.svg"
        }
    ],
    "slow_mode_enabled_until": null,
    "details": {
        "can_edit": false,
        "notification_level": 1,
        "participants": [
            {
                "id": 36689,
                "username": "Nadahar",
                "name": "Nadar",
                "avatar_template": "/user_avatar/community.openhab.org/nadahar/{size}/44246_2.png",
                "post_count": 1,
                "primary_group_name": null,
                "flair_name": null,
                "flair_url": null,
                "flair_color": null,
                "flair_bg_color": null,
                "flair_group_id": null,
                "trust_level": 2
            }
        ],
        "created_by": {
            "id": 36689,
            "username": "Nadahar",
            "name": "Nadar",
            "avatar_template": "/user_avatar/community.openhab.org/nadahar/{size}/44246_2.png"
        },
        "last_poster": {
            "id": 36689,
            "username": "Nadahar",
            "name": "Nadar",
            "avatar_template": "/user_avatar/community.openhab.org/nadahar/{size}/44246_2.png"
        },
        "links": [
            {
                "url": "https://github.com/Nadahar/Mill-LAN-openHAB-Binding/blob/master/bundles/org.openhab.binding.milllan/README.md",
                "title": "Mill-LAN-openHAB-Binding/bundles/org.openhab.binding.milllan/README.md at master · Nadahar/Mill-LAN-openHAB-Binding · GitHub",
                "internal": false,
                "attachment": false,
                "reflection": false,
                "clicks": 4,
                "user_id": 36689,
                "domain": "github.com",
                "root_domain": "github.com"
            },
            {
                "url": "https://millnorway.com/",
                "title": null,
                "internal": false,
                "attachment": false,
                "reflection": false,
                "clicks": 4,
                "user_id": 36689,
                "domain": "millnorway.com",
                "root_domain": "millnorway.com"
            },
            {
                "url": "https://github.com/Nadahar/Mill-LAN-openHAB-Binding",
                "title": "GitHub - Nadahar/Mill-LAN-openHAB-Binding",
                "internal": false,
                "attachment": false,
                "reflection": false,
                "clicks": 3,
                "user_id": 36689,
                "domain": "github.com",
                "root_domain": "github.com"
            },
            {
                "url": "https://github.com/Nadahar/Mill-LAN-openHAB-Binding/issues",
                "title": "Issues · Nadahar/Mill-LAN-openHAB-Binding · GitHub",
                "internal": false,
                "attachment": false,
                "reflection": false,
                "clicks": 1,
                "user_id": 36689,
                "domain": "github.com",
                "root_domain": "github.com"
            },
            {
                "url": "https://github.com/Nadahar/Mill-LAN-openHAB-Binding/releases/download/v1.0.0/org.openhab.binding.milllan-1.0.0.jar",
                "title": null,
                "internal": false,
                "attachment": false,
                "reflection": false,
                "clicks": 1,
                "user_id": 36689,
                "domain": "github.com",
                "root_domain": "github.com"
            }
        ]
    },
    "bookmarks": []
}

I don’t know if that JSON has been customized in any way, or if that’s just “standard Discourse”. The code then parses the links like this:

        if (topic.postStream.posts[0].linkCounts != null) {
            for (DiscoursePostLink postLink : topic.postStream.posts[0].linkCounts) {
                if (postLink.url.endsWith(".jar")) {
                    properties.put(JAR_DOWNLOAD_URL_PROPERTY, postLink.url);
                    id = determineIdFromUrl(postLink.url);
                }
                if (postLink.url.endsWith(".kar")) {
                    properties.put(KAR_DOWNLOAD_URL_PROPERTY, postLink.url);
                    id = determineIdFromUrl(postLink.url);
                }
                if (postLink.url.endsWith(".json")) {
                    properties.put(JSON_DOWNLOAD_URL_PROPERTY, postLink.url);
                }
                if (postLink.url.endsWith(".yaml")) {
                    properties.put(YAML_DOWNLOAD_URL_PROPERTY, postLink.url);
                }
            }
        }

…so it basically just filters out those links that ends with one of those extensions. These are then stored as properties in the Addon object. properties is a Map, so it can only hold one of each type/key, so it will probably keep whatever link is listed last in the first post for each extension. It doesn’t seem to me like the “Resources” heading is part of the parsing, but the convention makes sure that the “resources” are placed last.

“Code” sections are parsed like this (it seems like JSON and YAML are the ones that will potentially be used) from the cooked entry in the JSON:

    private static final Pattern CODE_MARKUP_PATTERN = Pattern.compile(
            "<pre(?: data-code-wrap=\"[a-z]+\")?><code class=\"lang-(?<lang>[a-z]+)\">(?<content>.*?)</code></pre>",
            Pattern.DOTALL);

        Matcher codeMarkup = CODE_MARKUP_PATTERN.matcher(detailedDescription);
        if (codeMarkup.find()) {
            properties.put(codeMarkup.group("lang") + CODE_CONTENT_SUFFIX,
                    unescapeEntities(codeMarkup.group("content")));
        }

So, in other words, the “language code” (e.g yaml) that is specified after the 3 backticks is used as the key, and then the content is just unescaped and stored as a string. It can keep one such “code block” per “language code”. But, the regex search doesn’t loop, it just runs once, so it will probably mean that opposite to with the links, the first code block is what will be stored. That’s regardless of what “language code” is used. As it will only do one “search” for embedded code, the first code fences better be “the resource”.