{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "模组工坊 Open API",
    "description" : "模组工坊面向第三方开发者的开放 API，包含资源查询 / 下载授权 / 用户代理 / Webhook 通知等能力。",
    "contact" : {
      "name" : "模组工坊开发者支持",
      "url" : "https://ueidc.cn",
      "email" : "contracter@ueidc.cn"
    },
    "version" : "1.0.0"
  },
  "servers" : [ {
    "url" : "http://localhost:7315",
    "description" : "生产环境"
  } ],
  "paths" : {
    "/openapi/v1/post/batch-detail" : {
      "post" : {
        "tags" : [ "Open API - 第三方接口" ],
        "summary" : "批量获取帖子详情",
        "operationId" : "OpenApiController.batchGetPostDetails",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OpenApiBatchPostDetailParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListMapStringObject"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v1/post/query" : {
      "get" : {
        "tags" : [ "Open API - 第三方接口" ],
        "summary" : "查询帖子列表",
        "operationId" : "OpenApiController.queryPosts",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultMapStringObject"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v1/post/{postId}" : {
      "get" : {
        "tags" : [ "Open API - 第三方接口" ],
        "summary" : "获取帖子详情",
        "operationId" : "OpenApiController.getPostDetail",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "postType",
          "in" : "query",
          "description" : "String",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOMapStringObject"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v1/resource/query" : {
      "get" : {
        "tags" : [ "Open API - 第三方接口" ],
        "summary" : "查询资源列表",
        "operationId" : "OpenApiController.queryResources",
        "parameters" : [ {
          "name" : "pageNum",
          "in" : "query",
          "description" : "Integer",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Integer",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "sectionCode",
          "in" : "query",
          "description" : "String",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "keyword",
          "in" : "query",
          "description" : "String",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultMapStringObject"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v1/resource/{postId}" : {
      "get" : {
        "tags" : [ "Open API - 第三方接口" ],
        "summary" : "获取资源详情",
        "operationId" : "OpenApiController.getResourceDetail",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOMapStringObject"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v1/resource/{postId}/download-auth" : {
      "post" : {
        "tags" : [ "Open API - 第三方接口" ],
        "summary" : "生成下载授权",
        "operationId" : "OpenApiController.generateDownloadAuth",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseDownloadAuthParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTODownloadAuthVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v1/resource/{postId}/files" : {
      "get" : {
        "tags" : [ "Open API - 第三方接口" ],
        "summary" : "获取资源文件列表",
        "operationId" : "OpenApiController.getResourceFiles",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListMapStringObject"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v1/resource/{postId}/install-config" : {
      "get" : {
        "tags" : [ "Open API - 第三方接口" ],
        "summary" : "获取安装配置",
        "operationId" : "OpenApiController.getInstallConfig",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "fileInfoId",
          "in" : "query",
          "description" : "Long",
          "required" : false,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOInstallConfigVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v1/server/query" : {
      "get" : {
        "tags" : [ "Open API - 第三方接口" ],
        "summary" : "查询服务器列表",
        "operationId" : "OpenApiController.queryServers",
        "parameters" : [ {
          "name" : "pageNum",
          "in" : "query",
          "description" : "Integer",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Integer",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "serverStatus",
          "in" : "query",
          "description" : "String",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "queryEnabled",
          "in" : "query",
          "description" : "Boolean",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultMapStringObject"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v1/server/{postId}/status" : {
      "get" : {
        "tags" : [ "Open API - 第三方接口" ],
        "summary" : "获取服务器状态",
        "operationId" : "OpenApiController.getServerStatus",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiServerStatusVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v1/stats/forum" : {
      "get" : {
        "tags" : [ "Open API - 第三方接口" ],
        "summary" : "获取论坛统计数据",
        "operationId" : "OpenApiController.getForumStats",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiForumStatsVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v1/tags" : {
      "get" : {
        "tags" : [ "Open API - 第三方接口" ],
        "summary" : "查询标签列表",
        "operationId" : "OpenApiController.queryTags",
        "parameters" : [ {
          "name" : "sectionCode",
          "in" : "query",
          "description" : "String",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListMapStringObject"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v1/user/profile" : {
      "get" : {
        "tags" : [ "Open API - 第三方接口" ],
        "summary" : "获取代理用户资料",
        "operationId" : "OpenApiController.getUserProfile",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiUserProfileVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/categories/tree" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "全站资源分类列表（当前为扁平结构，树形组装留待后续）",
        "operationId" : "OpenApiCategoryController.listCategories",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListCategoryNodeVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/category/tree" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "全站资源分类列表（当前为扁平结构，树形组装留待后续）",
        "operationId" : "OpenApiCategoryController.listCategories",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListCategoryNodeVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/collect" : {
      "post" : {
        "tags" : [ "OpenApiCommunityWriteController" ],
        "summary" : "收藏 toggle（代理用户场景）",
        "operationId" : "OpenApiCommunityWriteController.toggleCollect",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiInteractionParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOBoolean"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/community/comment" : {
      "post" : {
        "tags" : [ "OpenApiCommunityWriteController" ],
        "summary" : "发布评论 / 回复（代理用户场景）",
        "operationId" : "OpenApiCommunityWriteController.publishComment",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiCommentPublishParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOBoolean"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/community/comments" : {
      "get" : {
        "tags" : [ "OpenApiCommunityReadController" ],
        "summary" : "查询通用评论列表(按 entityType + entityId)",
        "operationId" : "OpenApiCommunityReadController.listComments",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultCommentVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/discuss/query" : {
      "get" : {
        "tags" : [ "OpenApiCommunityReadController" ],
        "summary" : "查询讨论帖列表",
        "operationId" : "OpenApiCommunityReadController.queryDiscussPosts",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultCommunityPostSummaryVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/discuss/{postId}" : {
      "get" : {
        "tags" : [ "OpenApiCommunityReadController" ],
        "summary" : "查询讨论帖详情",
        "operationId" : "OpenApiCommunityReadController.getDiscussDetail",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOCommunityPostDetailVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/follow" : {
      "post" : {
        "tags" : [ "OpenApiCommunityWriteController" ],
        "summary" : "关注 / 取关 toggle（代理用户场景）",
        "operationId" : "OpenApiCommunityWriteController.toggleFollow",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiFollowParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOBoolean"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/community/like" : {
      "post" : {
        "tags" : [ "OpenApiCommunityWriteController" ],
        "summary" : "点赞 toggle（代理用户场景）",
        "operationId" : "OpenApiCommunityWriteController.toggleLike",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiInteractionParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOBoolean"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/community/message/send" : {
      "post" : {
        "tags" : [ "OpenApiCommunityMessageController" ],
        "summary" : "发送私信（代理用户场景）",
        "operationId" : "OpenApiCommunityMessageController.sendPrivateMessage",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiMessageSendParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiPrivateMessageResultVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/community/moment/query" : {
      "get" : {
        "tags" : [ "OpenApiCommunityReadController" ],
        "summary" : "查询瞬间(动态)列表",
        "operationId" : "OpenApiCommunityReadController.queryMoments",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultCommunityMomentVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/moment/{momentId}" : {
      "get" : {
        "tags" : [ "OpenApiCommunityReadController" ],
        "summary" : "查询瞬间(动态)详情",
        "operationId" : "OpenApiCommunityReadController.getMomentDetail",
        "parameters" : [ {
          "name" : "momentId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOCommunityMomentVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/notifications" : {
      "get" : {
        "tags" : [ "OpenApiCommunityMessageController" ],
        "summary" : "查询代理用户站内消息列表",
        "operationId" : "OpenApiCommunityMessageController.listNotifications",
        "parameters" : [ {
          "name" : "readFlag",
          "in" : "query",
          "description" : "Boolean",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultMessageVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/notifications/read" : {
      "post" : {
        "tags" : [ "OpenApiCommunityMessageController" ],
        "summary" : "标记代理用户站内消息已读",
        "operationId" : "OpenApiCommunityMessageController.markRead",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OpenApiNotificationReadParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOVoid"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/notifications/unread-count" : {
      "get" : {
        "tags" : [ "OpenApiCommunityMessageController" ],
        "summary" : "查询代理用户未读消息数",
        "operationId" : "OpenApiCommunityMessageController.getUnreadCount",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOLong"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/question/query" : {
      "get" : {
        "tags" : [ "OpenApiCommunityReadController" ],
        "summary" : "查询问答帖列表",
        "operationId" : "OpenApiCommunityReadController.queryQuestions",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultCommunityQuestionVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/question/{postId}" : {
      "get" : {
        "tags" : [ "OpenApiCommunityReadController" ],
        "summary" : "查询问答帖详情",
        "operationId" : "OpenApiCommunityReadController.getQuestionDetail",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOCommunityQuestionVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/question/{postId}/answers" : {
      "get" : {
        "tags" : [ "OpenApiCommunityReadController" ],
        "summary" : "查询问答帖回答列表",
        "operationId" : "OpenApiCommunityReadController.listAnswers",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultCommunityAnswerVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/search" : {
      "get" : {
        "tags" : [ "OpenApiCommunitySearchController" ],
        "summary" : "全站全文搜索",
        "operationId" : "OpenApiCommunitySearchController.search",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultLuceneSearchResultVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/search/suggest" : {
      "get" : {
        "tags" : [ "OpenApiCommunitySearchController" ],
        "summary" : "搜索联想(前缀补全)",
        "operationId" : "OpenApiCommunitySearchController.suggest",
        "parameters" : [ {
          "name" : "keyword",
          "in" : "query",
          "description" : "String",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListString"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/user/{userId}" : {
      "get" : {
        "tags" : [ "OpenApiCommunityUserController" ],
        "summary" : "查询用户公开主页",
        "operationId" : "OpenApiCommunityUserController.getUserProfile",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOCommunityUserProfileVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/user/{userId}/followers" : {
      "get" : {
        "tags" : [ "OpenApiCommunityUserController" ],
        "summary" : "查询用户粉丝列表",
        "operationId" : "OpenApiCommunityUserController.listFollowers",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultCommunityFollowUserVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/user/{userId}/following" : {
      "get" : {
        "tags" : [ "OpenApiCommunityUserController" ],
        "summary" : "查询用户关注列表",
        "operationId" : "OpenApiCommunityUserController.listFollowing",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultCommunityFollowUserVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/community/user/{userId}/posts" : {
      "get" : {
        "tags" : [ "OpenApiCommunityUserController" ],
        "summary" : "查询用户作品(讨论帖)列表",
        "operationId" : "OpenApiCommunityUserController.listUserPosts",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultCommunityPostSummaryVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/file/batch" : {
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "批量文件查询（最多 50 个；仅返回所属资源公开可见的文件，其余静默过滤）",
        "operationId" : "OpenApiResourceController.batchGetFiles",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OpenApiFileBatchParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListFileSummaryVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/files" : {
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "批量文件查询（最多 50 个；仅返回所属资源公开可见的文件，其余静默过滤）",
        "operationId" : "OpenApiResourceController.batchGetFiles",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OpenApiFileBatchParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListFileSummaryVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/files/{fileId}/download-url" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "单文件下载 URL（外链原始地址；站内 mirror 文件请改用 /download-auth 接口）",
        "operationId" : "OpenApiResourceController.getFileDownloadUrl",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "fileId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOFileDownloadUrlVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/games" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "板块（游戏）列表（CurseForge: list games）",
        "operationId" : "OpenApiCategoryController.listSections",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListSectionVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/games/{sectionCode}" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "板块（游戏）详情",
        "operationId" : "OpenApiCategoryController.getSectionDetail",
        "parameters" : [ {
          "name" : "sectionCode",
          "in" : "path",
          "description" : "String",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOSectionVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/games/{sectionCode}/filter-options" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "板块维度资源筛选选项（资源类型→主要类别两级联动 + 运行平台）",
        "operationId" : "OpenApiCategoryController.getSectionFilterOptions",
        "parameters" : [ {
          "name" : "sectionCode",
          "in" : "path",
          "description" : "String",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOSectionFilterOptionsVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mod-loaders" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "运行平台列表（CurseForge: mod loaders）",
        "operationId" : "OpenApiCategoryController.listRunPlatforms",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListRunPlatformVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mod-loaders/{code}" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "运行平台详情",
        "operationId" : "OpenApiCategoryController.getRunPlatformDetail",
        "parameters" : [ {
          "name" : "code",
          "in" : "path",
          "description" : "String",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTORunPlatformVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/modpacks/user-feedback/resolved-since" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "\"是否有用\"投票已修复增量列表(cloudexplorer 定时拉取以复位本地隐藏状态)",
        "operationId" : "OpenApiResourceController.listUserFeedbackResolvedSince",
        "parameters" : [ {
          "name" : "since",
          "in" : "query",
          "description" : "起始时间 (ISO-8601, 例如 2026-08-26T00:00:00), 返回 resolvedAt >= since 的活跃反馈",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Integer",
          "required" : false,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListUserFeedbackResolvedItemVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/modpacks/{postId}/download-failure" : {
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "消费端资源下载失败上报(cloudexplorer 判定资源本身问题时上报,按 fingerprint 去重累加,达阈值自动隐藏)",
        "operationId" : "OpenApiResourceController.reportDownloadFailure",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DownloadFailureReportParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOVoid"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/modpacks/{postId}/mc-startup-command" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "Minecraft 一键启动命令(出租等消费端传机器内存，返回带 -Xmx 与 loader 参数的 shell 命令)",
        "operationId" : "OpenApiResourceController.getMcStartupCommand",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "memoryMb",
          "in" : "query",
          "description" : "Integer",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOMcStartupCommandVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      },
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "MC 一键启动命令消费端回传(出租等消费端把最终写入面板 startup 的命令+来源回传给上游,用于反哺推断质量)",
        "operationId" : "OpenApiResourceController.reportMcStartupCommand",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/McStartupCommandReportParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOVoid"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/modpacks/{postId}/user-feedback-report" : {
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "消费端\"是否有用\"隐形投票阈值上报(cloudexplorer 侧本地聚合触发, 上报快照供作者通知 + 后台观察)",
        "operationId" : "OpenApiResourceController.reportUserFeedback",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserFeedbackReportParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOVoid"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods" : {
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "批量获取资源摘要（最多 50 个 ID，结果按入参顺序返回）",
        "operationId" : "OpenApiResourceController.batchGetSummaries",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OpenApiResourceBatchParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListModSummaryVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/draft/init" : {
      "post" : {
        "tags" : [ "OpenApiResourceWriteController" ],
        "summary" : "初始化资源帖子草稿（代理用户场景；返回新建草稿 postId）",
        "operationId" : "OpenApiResourceWriteController.initDraft",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiInitDraftParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiPostIdVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/mods/draft/{draftId}/publish" : {
      "post" : {
        "tags" : [ "OpenApiResourceWriteController" ],
        "summary" : "从草稿发布资源帖子（含审批流转；代理用户场景）",
        "operationId" : "OpenApiResourceWriteController.publishFromDraft",
        "parameters" : [ {
          "name" : "draftId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiResourceSaveParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOBoolean"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/mods/draft/{draftId}/save" : {
      "post" : {
        "tags" : [ "OpenApiResourceWriteController" ],
        "summary" : "保存资源帖子草稿（draftId=0 表示新建草稿；代理用户场景）",
        "operationId" : "OpenApiResourceWriteController.saveDraft",
        "parameters" : [ {
          "name" : "draftId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiResourceSaveParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiPostIdVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/mods/featured" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "精选 / 热门资源列表（top 20，按下载数 + 点赞 + 更新时间综合排序）",
        "operationId" : "OpenApiResourceController.listFeatured",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListModSummaryVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/search" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "查询资源列表（CurseForge: search mods）",
        "operationId" : "OpenApiResourceController.queryResources",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultModSummaryVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/sync" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源增量同步（按 updateTime cursor 翻页；首次请求 cursor 留空）",
        "operationId" : "OpenApiResourceController.syncIncremental",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOResourceSyncVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/user-feedback/resolved-since" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "\"是否有用\"投票已修复增量列表(cloudexplorer 定时拉取以复位本地隐藏状态)",
        "operationId" : "OpenApiResourceController.listUserFeedbackResolvedSince",
        "parameters" : [ {
          "name" : "since",
          "in" : "query",
          "description" : "起始时间 (ISO-8601, 例如 2026-08-26T00:00:00), 返回 resolvedAt >= since 的活跃反馈",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Integer",
          "required" : false,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListUserFeedbackResolvedItemVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "获取资源详情（不含完整描述，描述请走 /description 端点）",
        "operationId" : "OpenApiResourceController.getDetail",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOModDetailVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/authors" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源帖子的作者列表（含 userName / avatarUrl / role）",
        "operationId" : "OpenApiResourceController.listAuthors",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListAuthorBriefVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/comments" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源评论列表（分页；仅 status=NORMAL 且未删除；按 createTime 倒序）",
        "operationId" : "OpenApiResourceController.listComments",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultCommentVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/description" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "获取资源完整描述（HTML + Markdown，独立端点避免详情 payload 膨胀）",
        "operationId" : "OpenApiResourceController.getDescription",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOModDescriptionVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/download-failure" : {
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "消费端资源下载失败上报(cloudexplorer 判定资源本身问题时上报,按 fingerprint 去重累加,达阈值自动隐藏)",
        "operationId" : "OpenApiResourceController.reportDownloadFailure",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DownloadFailureReportParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOVoid"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/edit" : {
      "post" : {
        "tags" : [ "OpenApiResourceWriteController" ],
        "summary" : "编辑已发布资源帖子（强制审批；代理用户场景）",
        "operationId" : "OpenApiResourceWriteController.editPost",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiResourceSaveParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOBoolean"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/mods/{postId}/files" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源帖子的文件列表（fingerprint 字段为第 2 期产出，当前为 null）",
        "operationId" : "OpenApiResourceController.listFiles",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListFileSummaryVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/files/{fileId}" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "单文件详情（含下载方式 downInfo 解析；归属校验 postId 必须与文件实际归属一致）",
        "operationId" : "OpenApiResourceController.getFileDetail",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "fileId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOFileDetailVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/files/{fileId}/download-file" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "OpenAPI 直连文件下载(X-API-Key 鉴权,DIRECT_UPLOAD 流式,DIRECT_LINK 302,CLOUD_DISK 拒绝)",
        "operationId" : "OpenApiResourceController.downloadFile",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "fileId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)"
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/install-config" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源一键安装配置（解析 installScript JSON + 补齐资源基本字段）",
        "operationId" : "OpenApiResourceController.getInstallConfig",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOInstallConfigVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/install-info" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源一键安装信息（完整：含已签名直链 + steam 外部源 + 验证版本；回源 biz。免费资源免登录，付费资源需代理用户且购买门禁）",
        "operationId" : "OpenApiResourceController.getInstallInfo",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiInstallInfoVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/install-launch" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源一键安装唤起信息（deeplink + 探测 + 下载引导，供调用方渲染按钮）",
        "operationId" : "OpenApiResourceController.getInstallLaunch",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOInstallLaunchVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/mc-startup-command" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "Minecraft 一键启动命令(出租等消费端传机器内存，返回带 -Xmx 与 loader 参数的 shell 命令)",
        "operationId" : "OpenApiResourceController.getMcStartupCommand",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "memoryMb",
          "in" : "query",
          "description" : "Integer",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOMcStartupCommandVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      },
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "MC 一键启动命令消费端回传(出租等消费端把最终写入面板 startup 的命令+来源回传给上游,用于反哺推断质量)",
        "operationId" : "OpenApiResourceController.reportMcStartupCommand",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/McStartupCommandReportParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOVoid"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/rating" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源评分聚合（平均分 + 总人数 + 1~5 星分布；无评分时各项返回 0）",
        "operationId" : "OpenApiResourceController.getRating",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTORatingAggregateVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/relations" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源帖子的关系链（依赖 / 不兼容 / 推荐；target 字段为空，请用 /mods 批量接口拉取目标摘要）",
        "operationId" : "OpenApiResourceController.listRelations",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListRelationVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/user-feedback-report" : {
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "消费端\"是否有用\"隐形投票阈值上报(cloudexplorer 侧本地聚合触发, 上报快照供作者通知 + 后台观察)",
        "operationId" : "OpenApiResourceController.reportUserFeedback",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserFeedbackReportParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOVoid"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/mods/{postId}/versions" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源帖子的历史版本列表（仅审批通过的版本，按 versionNumber 倒序）",
        "operationId" : "OpenApiResourceController.listVersions",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListVersionVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/oauth/revoke" : {
      "post" : {
        "tags" : [ "OpenApiOAuthController" ],
        "summary" : "吊销代理用户访问令牌",
        "operationId" : "OpenApiOAuthController.revokeToken",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOBoolean"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/oauth/token" : {
      "post" : {
        "tags" : [ "OpenApiOAuthController" ],
        "summary" : "颁发代理用户访问令牌（24h 有效）",
        "operationId" : "OpenApiOAuthController.issueToken",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OpenApiAccessTokenIssueParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiAccessTokenVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/pairing/redeem" : {
      "post" : {
        "tags" : [ "OpenApiOAuthController" ],
        "summary" : "凭配对码换发代理令牌（面板配对：用户在社区生成配对码，面板换取代表其下载已购资源的令牌）",
        "operationId" : "OpenApiOAuthController.redeemPairing",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OpenApiPairingRedeemParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiAccessTokenVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/provider/activity/carousel" : {
      "post" : {
        "tags" : [ "OpenApiProviderActivityWriteController" ],
        "summary" : "服务商花活动积分自助投放轮播（免审直上，图片自传；代理用户场景）",
        "operationId" : "OpenApiProviderActivityWriteController.carousel",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOServerProviderCarouselResultVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/provider/activity/collect" : {
      "post" : {
        "tags" : [ "OpenApiProviderActivityWriteController" ],
        "summary" : "代表已授权用户扣其钱包积分并转入服务商活动积分账户（代理用户场景）",
        "operationId" : "OpenApiProviderActivityWriteController.collect",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ServerProviderActivityCollectParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOServerProviderActivityCollectResultVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/proxy-user/register" : {
      "post" : {
        "tags" : [ "OpenAPI v2 - 代理用户账号 / 积分" ],
        "summary" : "注册代理用户（一键绑定：mzgf 侧当场建号 + 下发 24h 代理令牌）",
        "operationId" : "OpenApiProxyUserController.registerProxyUser",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OpenApiProxyUserRegisterParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiProxyUserRegisterVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/proxy-user/{userId}/points" : {
      "get" : {
        "tags" : [ "OpenAPI v2 - 代理用户账号 / 积分" ],
        "summary" : "查询代理用户积分余额（需 X-Proxy-Access-Token）",
        "operationId" : "OpenApiProxyUserController.getPoints",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiProxyUserPointsVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/proxy-user/{userId}/points/adjust" : {
      "post" : {
        "tags" : [ "OpenAPI v2 - 代理用户账号 / 积分" ],
        "summary" : "调整代理用户积分（ADD 增加 / DEDUCT 扣减，需 X-Proxy-Access-Token）",
        "operationId" : "OpenApiProxyUserController.adjustPoints",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OpenApiProxyUserPointsAdjustParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiProxyUserPointsAdjustVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/proxy-user/{userId}/wallet/{currencyCode}/adjust" : {
      "post" : {
        "tags" : [ "OpenAPI v2 - 代理用户账号 / 积分" ],
        "summary" : "调整代理用户任意币种余额(ADD/DEDUCT,白名单同 balance)",
        "operationId" : "OpenApiProxyUserController.adjustWalletBalance",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "currencyCode",
          "in" : "path",
          "description" : "String",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OpenApiProxyUserPointsAdjustParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiProxyUserPointsAdjustVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/proxy-user/{userId}/wallet/{currencyCode}/balance" : {
      "get" : {
        "tags" : [ "OpenAPI v2 - 代理用户账号 / 积分" ],
        "summary" : "查询代理用户任意币种余额(白名单:GOLD_COIN/POINTS/CASH,需 X-Proxy-Access-Token)",
        "operationId" : "OpenApiProxyUserController.getWalletBalance",
        "parameters" : [ {
          "name" : "userId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "currencyCode",
          "in" : "path",
          "description" : "String",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiProxyUserPointsVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/batch" : {
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "批量获取资源摘要（最多 50 个 ID，结果按入参顺序返回）",
        "operationId" : "OpenApiResourceController.batchGetSummaries",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OpenApiResourceBatchParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListModSummaryVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/draft/{draftId}/publish" : {
      "post" : {
        "tags" : [ "OpenApiResourceWriteController" ],
        "summary" : "从草稿发布资源帖子（含审批流转；代理用户场景）",
        "operationId" : "OpenApiResourceWriteController.publishFromDraft",
        "parameters" : [ {
          "name" : "draftId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiResourceSaveParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOBoolean"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/resource/draft/{draftId}/save" : {
      "post" : {
        "tags" : [ "OpenApiResourceWriteController" ],
        "summary" : "保存资源帖子草稿（draftId=0 表示新建草稿；代理用户场景）",
        "operationId" : "OpenApiResourceWriteController.saveDraft",
        "parameters" : [ {
          "name" : "draftId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiResourceSaveParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiPostIdVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/resource/featured" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "精选 / 热门资源列表（top 20，按下载数 + 点赞 + 更新时间综合排序）",
        "operationId" : "OpenApiResourceController.listFeatured",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListModSummaryVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/init-draft" : {
      "post" : {
        "tags" : [ "OpenApiResourceWriteController" ],
        "summary" : "初始化资源帖子草稿（代理用户场景；返回新建草稿 postId）",
        "operationId" : "OpenApiResourceWriteController.initDraft",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiInitDraftParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiPostIdVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/resource/query" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "查询资源列表（CurseForge: search mods）",
        "operationId" : "OpenApiResourceController.queryResources",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultModSummaryVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/sync" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源增量同步（按 updateTime cursor 翻页；首次请求 cursor 留空）",
        "operationId" : "OpenApiResourceController.syncIncremental",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOResourceSyncVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/user-feedback/resolved-since" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "\"是否有用\"投票已修复增量列表(cloudexplorer 定时拉取以复位本地隐藏状态)",
        "operationId" : "OpenApiResourceController.listUserFeedbackResolvedSince",
        "parameters" : [ {
          "name" : "since",
          "in" : "query",
          "description" : "起始时间 (ISO-8601, 例如 2026-08-26T00:00:00), 返回 resolvedAt >= since 的活跃反馈",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Integer",
          "required" : false,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListUserFeedbackResolvedItemVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "获取资源详情（不含完整描述，描述请走 /description 端点）",
        "operationId" : "OpenApiResourceController.getDetail",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOModDetailVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/authors" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源帖子的作者列表（含 userName / avatarUrl / role）",
        "operationId" : "OpenApiResourceController.listAuthors",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListAuthorBriefVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/comments" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源评论列表（分页；仅 status=NORMAL 且未删除；按 createTime 倒序）",
        "operationId" : "OpenApiResourceController.listComments",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOPageResultCommentVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/description" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "获取资源完整描述（HTML + Markdown，独立端点避免详情 payload 膨胀）",
        "operationId" : "OpenApiResourceController.getDescription",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOModDescriptionVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/download-auth" : {
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "下载签名授权（站内 mirror 文件；颁发临时下载 token；fileId 在 body 里）",
        "operationId" : "OpenApiResourceController.generateDownloadAuth",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseDownloadAuthParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTODownloadAuthVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/download-failure" : {
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "消费端资源下载失败上报(cloudexplorer 判定资源本身问题时上报,按 fingerprint 去重累加,达阈值自动隐藏)",
        "operationId" : "OpenApiResourceController.reportDownloadFailure",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DownloadFailureReportParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOVoid"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/edit" : {
      "post" : {
        "tags" : [ "OpenApiResourceWriteController" ],
        "summary" : "编辑已发布资源帖子（强制审批；代理用户场景）",
        "operationId" : "OpenApiResourceWriteController.editPost",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiResourceSaveParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOBoolean"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/resource/{postId}/file/{fileId}" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "单文件详情（含下载方式 downInfo 解析；归属校验 postId 必须与文件实际归属一致）",
        "operationId" : "OpenApiResourceController.getFileDetail",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "fileId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOFileDetailVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/file/{fileId}/download-file" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "OpenAPI 直连文件下载(X-API-Key 鉴权,DIRECT_UPLOAD 流式,DIRECT_LINK 302,CLOUD_DISK 拒绝)",
        "operationId" : "OpenApiResourceController.downloadFile",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "fileId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)"
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/file/{fileId}/download-url" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "单文件下载 URL（外链原始地址；站内 mirror 文件请改用 /download-auth 接口）",
        "operationId" : "OpenApiResourceController.getFileDownloadUrl",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "fileId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOFileDownloadUrlVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/files" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源帖子的文件列表（fingerprint 字段为第 2 期产出，当前为 null）",
        "operationId" : "OpenApiResourceController.listFiles",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListFileSummaryVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/install-config" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源一键安装配置（解析 installScript JSON + 补齐资源基本字段）",
        "operationId" : "OpenApiResourceController.getInstallConfig",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOInstallConfigVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/install-info" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源一键安装信息（完整：含已签名直链 + steam 外部源 + 验证版本；回源 biz。免费资源免登录，付费资源需代理用户且购买门禁）",
        "operationId" : "OpenApiResourceController.getInstallInfo",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiInstallInfoVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/install-launch" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源一键安装唤起信息（deeplink + 探测 + 下载引导，供调用方渲染按钮）",
        "operationId" : "OpenApiResourceController.getInstallLaunch",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOInstallLaunchVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/mc-startup-command" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "Minecraft 一键启动命令(出租等消费端传机器内存，返回带 -Xmx 与 loader 参数的 shell 命令)",
        "operationId" : "OpenApiResourceController.getMcStartupCommand",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "memoryMb",
          "in" : "query",
          "description" : "Integer",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOMcStartupCommandVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      },
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "MC 一键启动命令消费端回传(出租等消费端把最终写入面板 startup 的命令+来源回传给上游,用于反哺推断质量)",
        "operationId" : "OpenApiResourceController.reportMcStartupCommand",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/McStartupCommandReportParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOVoid"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/rating" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源评分聚合（平均分 + 总人数 + 1~5 星分布；无评分时各项返回 0）",
        "operationId" : "OpenApiResourceController.getRating",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTORatingAggregateVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/relations" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源帖子的关系链（依赖 / 不兼容 / 推荐；target 字段为空，请用 /mods 批量接口拉取目标摘要）",
        "operationId" : "OpenApiResourceController.listRelations",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListRelationVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/user-feedback-report" : {
      "post" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "消费端\"是否有用\"隐形投票阈值上报(cloudexplorer 侧本地聚合触发, 上报快照供作者通知 + 后台观察)",
        "operationId" : "OpenApiResourceController.reportUserFeedback",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserFeedbackReportParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOVoid"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/resource/{postId}/versions" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "资源帖子的历史版本列表（仅审批通过的版本，按 versionNumber 倒序）",
        "operationId" : "OpenApiResourceController.listVersions",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListVersionVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/run-platform/list" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "运行平台列表（CurseForge: mod loaders）",
        "operationId" : "OpenApiCategoryController.listRunPlatforms",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListRunPlatformVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/run-platform/{code}" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "运行平台详情",
        "operationId" : "OpenApiCategoryController.getRunPlatformDetail",
        "parameters" : [ {
          "name" : "code",
          "in" : "path",
          "description" : "String",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTORunPlatformVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/section/list" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "板块（游戏）列表（CurseForge: list games）",
        "operationId" : "OpenApiCategoryController.listSections",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOListSectionVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/section/{sectionCode}" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "板块（游戏）详情",
        "operationId" : "OpenApiCategoryController.getSectionDetail",
        "parameters" : [ {
          "name" : "sectionCode",
          "in" : "path",
          "description" : "String",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOSectionVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/section/{sectionCode}/filter-options" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "板块维度资源筛选选项（资源类型→主要类别两级联动 + 运行平台）",
        "operationId" : "OpenApiCategoryController.getSectionFilterOptions",
        "parameters" : [ {
          "name" : "sectionCode",
          "in" : "path",
          "description" : "String",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOSectionFilterOptionsVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/server-post/lobby/publish" : {
      "post" : {
        "tags" : [ "OpenApiServerPostLobbyController" ],
        "summary" : "联机帖一键公开 (代理用户创建 + 全量写入资源清单)",
        "operationId" : "OpenApiServerPostLobbyController.publish",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiServerPostLobbyPublishParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOLong"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/server-post/lobby/{postId}/close" : {
      "post" : {
        "tags" : [ "OpenApiServerPostLobbyController" ],
        "summary" : "关闭联机帖 (软删主帖 + 资源行)",
        "operationId" : "OpenApiServerPostLobbyController.close",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOBoolean"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/server-post/lobby/{postId}/manifest" : {
      "get" : {
        "tags" : [ "OpenApiServerPostLobbyController" ],
        "summary" : "联机小子拉资源清单 (匿名可访问)",
        "operationId" : "OpenApiServerPostLobbyController.getManifest",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiServerPostLobbyManifestVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/server-post/lobby/{postId}/refresh-urls" : {
      "post" : {
        "tags" : [ "OpenApiServerPostLobbyController" ],
        "summary" : "批量刷新资源预签名 URL",
        "operationId" : "OpenApiServerPostLobbyController.refreshUrls",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOInteger"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/server-post/lobby/{postId}/resources/reserve-batch" : {
      "post" : {
        "tags" : [ "OpenApiServerPostLobbyController" ],
        "summary" : "用户自建资源批量占位 (sha256 全库去重 + uploadToken 下发)",
        "operationId" : "OpenApiServerPostLobbyController.reserveResources",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiServerPostLobbyReserveBatchParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiServerPostLobbyReserveBatchVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/server-post/lobby/{postId}/resources/{resourceId}/cancel" : {
      "post" : {
        "tags" : [ "OpenApiServerPostLobbyController" ],
        "summary" : "用户自建资源占位取消 (PENDING 物删 / UPLOADED tombstone)",
        "operationId" : "OpenApiServerPostLobbyController.cancelResource",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "resourceId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOBoolean"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/server-post/lobby/{postId}/resources/{resourceId}/upload" : {
      "post" : {
        "tags" : [ "OpenApiServerPostLobbyController" ],
        "summary" : "用户自建资源实际上传 (multipart + 流式 sha256 校验)",
        "operationId" : "OpenApiServerPostLobbyController.uploadResource",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "resourceId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        }, {
          "name" : "file",
          "in" : "query",
          "description" : "MultipartFile",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiServerPostLobbyUploadResultVo"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/server-post/lobby/{postId}/update" : {
      "post" : {
        "tags" : [ "OpenApiServerPostLobbyController" ],
        "summary" : "更新联机帖 (覆盖字段 + 全量替换资源清单)",
        "operationId" : "OpenApiServerPostLobbyController.update",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BaseOpenApiServerPostLobbyPublishParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOBoolean"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/sso/exchange" : {
      "post" : {
        "tags" : [ "OpenApiSsoController" ],
        "summary" : "以 X-Proxy-Access-Token 换取 5 分钟一次性 SSO ticket(供浏览器无感登录 mzgf)",
        "operationId" : "OpenApiSsoController.exchangeTicket",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiSsoTicketVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/stats/games/{sectionCode}" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "板块维度统计（资源数 + 累计浏览/下载/点赞/收藏聚合）",
        "operationId" : "OpenApiCategoryController.getSectionStats",
        "parameters" : [ {
          "name" : "sectionCode",
          "in" : "path",
          "description" : "String",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOSectionStatsVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/stats/mods/{postId}" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "单资源统计（累计浏览/下载/点赞/收藏/评论 + 平均评分）",
        "operationId" : "OpenApiResourceController.getResourceStats",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOResourceStatsDetailVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/stats/resource/{postId}" : {
      "get" : {
        "tags" : [ "OpenApiResourceController" ],
        "summary" : "单资源统计（累计浏览/下载/点赞/收藏/评论 + 平均评分）",
        "operationId" : "OpenApiResourceController.getResourceStats",
        "parameters" : [ {
          "name" : "postId",
          "in" : "path",
          "description" : "Long",
          "required" : true,
          "schema" : {
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOResourceStatsDetailVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/stats/section/{sectionCode}" : {
      "get" : {
        "tags" : [ "OpenApiCategoryController" ],
        "summary" : "板块维度统计（资源数 + 累计浏览/下载/点赞/收藏聚合）",
        "operationId" : "OpenApiCategoryController.getSectionStats",
        "parameters" : [ {
          "name" : "sectionCode",
          "in" : "path",
          "description" : "String",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOSectionStatsVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        } ],
        "x-openapi-require-proxy" : false,
        "x-openapi-write-action" : false
      }
    },
    "/openapi/v2/user-binding/link" : {
      "post" : {
        "tags" : [ "OpenAPI v2 - 第三方用户绑定映射" ],
        "summary" : "反向绑定第三方 App 用户(需 X-Proxy-Access-Token,幂等 upsert)",
        "operationId" : "OpenApiUserBindingController.link",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OpenApiUserBindingLinkParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOOpenApiUserBindingVO"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    },
    "/openapi/v2/user-binding/unlink" : {
      "post" : {
        "tags" : [ "OpenAPI v2 - 第三方用户绑定映射" ],
        "summary" : "解绑第三方 App 用户(需 X-Proxy-Access-Token)",
        "operationId" : "OpenApiUserBindingController.unlink",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OpenApiUserBindingLinkParam"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "成功 (ResponseDTO 包裹)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDTOInteger"
                }
              }
            }
          },
          "default" : {
            "description" : "业务异常 (ResponseDTO with errorCode)"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ],
          "ProxyUserId" : [ ],
          "ProxyAccessToken" : [ ]
        } ],
        "x-openapi-require-proxy" : true,
        "x-openapi-write-action" : true
      }
    }
  },
  "components" : {
    "schemas" : {
      "AuthorBriefVO" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "integer",
            "description" : "用户 ID（系统用户）",
            "format" : "int64"
          },
          "userName" : {
            "type" : "string",
            "description" : "用户名"
          },
          "avatarUrl" : {
            "type" : "string",
            "description" : "头像 URL（已经过 buildDisplayUrl 处理）"
          },
          "role" : {
            "type" : "string",
            "description" : "作者角色，取值见 cn.yuul.base.framework.constant.PostConstants.POSITION_TYPE：OWNER（管理者）/ COLLABORATOR（协作者）/ CONTRIBUTOR（贡献者）"
          }
        },
        "description" : "作者列表（含主作者与协作者，按角色顺序）"
      },
      "BaseDownloadAuthParam" : {
        "required" : [ "fileInfoId" ],
        "type" : "object",
        "properties" : {
          "fileInfoId" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "文件信息 ID（不传则下载默认文件）",
            "format" : "int64",
            "example" : 1001
          },
          "proxyUserId" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "代理用户 ID（可选，需具备代理权限）",
            "format" : "int64",
            "example" : 20001
          }
        }
      },
      "BaseOpenApiCommentPublishParam" : {
        "required" : [ "content", "entityId", "entityType" ],
        "type" : "object",
        "properties" : {
          "entityType" : {
            "pattern" : "^(DISCUSS_POST|QUESTION_POST|USER_MOMENT|RESOURCE_POST)$",
            "type" : "string",
            "description" : "根实体类型：DISCUSS_POST / QUESTION_POST / USER_MOMENT / RESOURCE_POST"
          },
          "entityId" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "根实体 ID（帖子 / 瞬间 ID）",
            "format" : "int64"
          },
          "content" : {
            "maxLength" : 5000,
            "minLength" : 0,
            "type" : "string",
            "description" : "评论内容"
          },
          "parentCommentId" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "父评论 ID（回复场景传入，顶层评论留空）",
            "format" : "int64"
          },
          "mentionedUserIds" : {
            "maxItems" : 10,
            "minItems" : 0,
            "type" : "array",
            "description" : "@提及的用户 ID 列表（最多 10 个）",
            "items" : {
              "type" : "integer",
              "description" : "@提及的用户 ID 列表（最多 10 个）",
              "format" : "int64"
            }
          }
        }
      },
      "BaseOpenApiFollowParam" : {
        "required" : [ "targetUserId" ],
        "type" : "object",
        "properties" : {
          "targetUserId" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "目标用户 ID",
            "format" : "int64"
          }
        }
      },
      "BaseOpenApiInitDraftParam" : {
        "required" : [ "sectionCode" ],
        "type" : "object",
        "properties" : {
          "sectionCode" : {
            "maxLength" : 64,
            "minLength" : 0,
            "pattern" : "^[a-zA-Z0-9_\\-]+$",
            "type" : "string",
            "description" : "板块（游戏）code"
          },
          "resourceTypeId" : {
            "type" : "integer",
            "description" : "资源类型 ID（关联 resource_ext_info 表 type=RESOURCE_TYPE 行）",
            "format" : "int64"
          },
          "categoryId" : {
            "maxLength" : 200,
            "minLength" : 0,
            "type" : "string",
            "description" : "分类 ID（逗号分隔，最多 5 个；对应 resource_ext_info type=RESOURCE_MAIN_CATEGORY）"
          },
          "title" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string",
            "description" : "标题（可选，未填时由用户在编辑页补全）"
          },
          "presetCategory" : {
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string",
            "description" : "预设类目（存档广场聚合场景使用，如 SAVE_GAME / CHALLENGE_CONFIG / GRAPHICS_PRESET）"
          }
        }
      },
      "BaseOpenApiInteractionParam" : {
        "required" : [ "entityId", "entityType" ],
        "type" : "object",
        "properties" : {
          "entityType" : {
            "pattern" : "^(DISCUSS_POST|QUESTION_POST|USER_MOMENT|RESOURCE_POST|POST_COMMENT)$",
            "type" : "string",
            "description" : "目标实体类型：DISCUSS_POST / QUESTION_POST / USER_MOMENT / RESOURCE_POST / POST_COMMENT"
          },
          "entityId" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "目标实体 ID",
            "format" : "int64"
          }
        }
      },
      "BaseOpenApiMessageSendParam" : {
        "required" : [ "content", "toUserId" ],
        "type" : "object",
        "properties" : {
          "toUserId" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "收信用户 ID",
            "format" : "int64"
          },
          "content" : {
            "maxLength" : 2000,
            "minLength" : 0,
            "type" : "string",
            "description" : "私信内容"
          }
        }
      },
      "BaseOpenApiResourceFileInfoLogParam" : {
        "type" : "object",
        "properties" : {
          "infoId" : {
            "type" : "integer",
            "description" : "文件信息ID",
            "format" : "int64"
          },
          "logVersion" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "日志版本"
          },
          "mdContent" : {
            "maxLength" : 10000,
            "minLength" : 0,
            "type" : "string",
            "description" : "Markdown内容"
          },
          "logType" : {
            "maxLength" : 20,
            "minLength" : 0,
            "type" : "string",
            "description" : "日志类型"
          }
        },
        "description" : "OpenAPI 资源文件信息日志"
      },
      "BaseOpenApiResourceFileInfoParam" : {
        "type" : "object",
        "properties" : {
          "infoId" : {
            "type" : "integer",
            "description" : "文件信息ID",
            "format" : "int64"
          },
          "resourcePostId" : {
            "type" : "integer",
            "description" : "资源帖子ID",
            "format" : "int64"
          },
          "infoTitle" : {
            "maxLength" : 200,
            "minLength" : 0,
            "type" : "string",
            "description" : "文件标题"
          },
          "fileVersion" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "文件版本"
          },
          "fileStatus" : {
            "maxLength" : 20,
            "minLength" : 0,
            "type" : "string",
            "description" : "文件状态"
          },
          "runPlatform" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "运行平台"
          },
          "runPlatformName" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string",
            "description" : "运行平台名称"
          },
          "runPlatformIconUrl" : {
            "type" : "string",
            "description" : "运行平台图标URL"
          },
          "resourceVersion" : {
            "maxItems" : 20,
            "minItems" : 0,
            "type" : "array",
            "description" : "资源版本列表",
            "items" : {
              "type" : "string",
              "description" : "资源版本列表"
            }
          },
          "resourceVersionNames" : {
            "maxItems" : 20,
            "minItems" : 0,
            "type" : "array",
            "description" : "资源版本名称列表",
            "items" : {
              "type" : "string",
              "description" : "资源版本名称列表"
            }
          },
          "downInfo" : {
            "maxLength" : 10000,
            "minLength" : 0,
            "type" : "string",
            "description" : "下载方式信息"
          },
          "directFileId" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string",
            "description" : "站内下载文件ID"
          },
          "directFileUrl" : {
            "maxLength" : 500,
            "minLength" : 0,
            "pattern" : "^(https?://.*)?$",
            "type" : "string",
            "description" : "站内下载文件URL"
          },
          "directFileName" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string",
            "description" : "站内下载文件名"
          },
          "directFileSize" : {
            "type" : "integer",
            "description" : "站内下载文件大小",
            "format" : "int64"
          },
          "logs" : {
            "maxItems" : 100,
            "minItems" : 0,
            "type" : "array",
            "description" : "日志信息列表",
            "items" : {
              "$ref" : "#/components/schemas/BaseOpenApiResourceFileInfoLogParam"
            }
          }
        },
        "description" : "OpenAPI 资源文件信息"
      },
      "BaseOpenApiResourceRelateParam" : {
        "type" : "object",
        "properties" : {
          "actualName" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string",
            "description" : "真实名称"
          },
          "avatar" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string",
            "description" : "头像URL"
          },
          "positionType" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "职位类型"
          },
          "userId" : {
            "type" : "integer",
            "description" : "用户ID",
            "format" : "int64"
          },
          "createTime" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "创建时间"
          }
        },
        "description" : "OpenAPI 资源帖关联信息"
      },
      "BaseOpenApiResourceSaveParam" : {
        "required" : [ "authors", "clientEnvironment", "creationType", "mainName", "mdContent", "resourceState", "resourceTypeId", "sectionCode", "serverEnvironment", "sourceState" ],
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "description" : "帖子ID（编辑时使用）",
            "format" : "int64"
          },
          "mainName" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "资源主名称"
          },
          "subName" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "资源次名称"
          },
          "mainCategory" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string",
            "description" : "主要类别（支持多个，用逗号分隔，最多5个）"
          },
          "presetCategory" : {
            "pattern" : "^(SAVE_GAME|CHALLENGE_CONFIG|GRAPHICS_PRESET)$",
            "type" : "string",
            "description" : "预设类目（SAVE_GAME/CHALLENGE_CONFIG/GRAPHICS_PRESET），可选；普通资源传 null"
          },
          "abbrName" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "缩写名称"
          },
          "introduction" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string",
            "description" : "资源简介"
          },
          "coverFileId" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string",
            "description" : "封面文件ID"
          },
          "mdContent" : {
            "maxLength" : 32768,
            "minLength" : 10,
            "type" : "string",
            "description" : "Markdown格式内容"
          },
          "content" : {
            "maxLength" : 32768,
            "minLength" : 0,
            "type" : "string",
            "description" : "普通文本内容"
          },
          "sectionCode" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "板块代码"
          },
          "gameTypeId" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "游戏类型ID",
            "format" : "int64"
          },
          "resourceTypeId" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "资源类型ID",
            "format" : "int64"
          },
          "runPlatformId" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "运行平台ID",
            "format" : "int64"
          },
          "contentCopyrightId" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "内容版权ID",
            "format" : "int64"
          },
          "contentCopyright" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string",
            "description" : "内容版权协议"
          },
          "resourceCopyrightId" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "资源版权ID",
            "format" : "int64"
          },
          "resourceCopyright" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string",
            "description" : "资源开源协议"
          },
          "resourceVersion" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "资源版本"
          },
          "authors" : {
            "maxLength" : 50000,
            "minLength" : 0,
            "type" : "string",
            "description" : "作者信息（JSON 数组字符串）"
          },
          "postTags" : {
            "maxItems" : 5,
            "minItems" : 0,
            "type" : "array",
            "description" : "帖子标签列表",
            "items" : {
              "type" : "string",
              "description" : "帖子标签列表"
            }
          },
          "postTypeId" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "资源帖子类型ID"
          },
          "clientEnvironment" : {
            "pattern" : "^(REQUIRED|OPTIONAL|NO_NEED|UNKNOWN)$",
            "type" : "string",
            "description" : "客户端运行环境"
          },
          "serverEnvironment" : {
            "pattern" : "^(REQUIRED|OPTIONAL|NO_NEED|UNKNOWN)$",
            "type" : "string",
            "description" : "服务端运行环境"
          },
          "resourceState" : {
            "pattern" : "^(ACTIVE|SEMI_ABANDONED|ABANDONED|UNKNOWN)$",
            "type" : "string",
            "description" : "资源状态"
          },
          "sourceState" : {
            "pattern" : "^(OPEN|CLOSED|UNKNOWN)$",
            "type" : "string",
            "description" : "开源状态"
          },
          "relation" : {
            "$ref" : "#/components/schemas/ResourceRelationParam"
          },
          "installScript" : {
            "maxLength" : 50000,
            "minLength" : 0,
            "type" : "string",
            "description" : "安装脚本"
          },
          "creationType" : {
            "maxLength" : 50,
            "minLength" : 0,
            "pattern" : "^(ORIGINAL|TRANSFER|COLLABORATION|FORK)$",
            "type" : "string",
            "description" : "创作类型"
          },
          "refLink" : {
            "maxLength" : 10000,
            "minLength" : 0,
            "type" : "string",
            "description" : "参考链接（JSON数组字符串）"
          },
          "resourceRelate" : {
            "maxItems" : 100,
            "minItems" : 0,
            "type" : "array",
            "description" : "资源关联列表",
            "items" : {
              "$ref" : "#/components/schemas/BaseOpenApiResourceRelateParam"
            }
          },
          "resourceFileInfoVos" : {
            "maxItems" : 50,
            "minItems" : 0,
            "type" : "array",
            "description" : "资源文件信息列表",
            "items" : {
              "$ref" : "#/components/schemas/BaseOpenApiResourceFileInfoParam"
            }
          },
          "images" : {
            "maxItems" : 50,
            "minItems" : 0,
            "type" : "array",
            "description" : "媒体图片文件ID列表",
            "items" : {
              "type" : "string",
              "description" : "媒体图片文件ID列表"
            }
          },
          "tempId" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string",
            "description" : "临时ID（用于文件迁移）"
          },
          "updateCommit" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string",
            "description" : "更新说明"
          },
          "rewardEnabled" : {
            "type" : "boolean",
            "description" : "是否开启打赏激励"
          },
          "visibility" : {
            "maxLength" : 20,
            "minLength" : 0,
            "pattern" : "^(PUBLIC|PRIVATE)?$",
            "type" : "string",
            "description" : "可见范围(PUBLIC/PRIVATE)"
          },
          "isPaid" : {
            "type" : "boolean",
            "description" : "是否付费资源"
          },
          "priceCurrencyCode" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "价格货币代码"
          },
          "priceAmount" : {
            "type" : "number",
            "description" : "价格金额"
          },
          "isAllEdit" : {
            "type" : "boolean",
            "description" : "是否公开编辑"
          },
          "memberEnabled" : {
            "type" : "boolean",
            "description" : "是否开启项目成员功能"
          },
          "isNewDraft" : {
            "type" : "boolean",
            "description" : "是否为新建草稿（true=新建草稿，false/null=更新已有草稿）"
          },
          "parentPostId" : {
            "type" : "integer",
            "description" : "父帖子ID（编辑已发布帖子时传入原帖ID，用于创建EDIT类型草稿）",
            "format" : "int64"
          }
        },
        "description" : "OpenAPI 资源帖子保存/发布/编辑入参"
      },
      "BaseOpenApiServerPostLobbyPublishParam" : {
        "required" : [ "mainName", "sectionCode", "serverIp" ],
        "type" : "object",
        "properties" : {
          "postTitle" : {
            "maxLength" : 30,
            "minLength" : 0,
            "type" : "string",
            "description" : "帖子标题"
          },
          "mainName" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string",
            "description" : "服务器名字"
          },
          "sectionCode" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "板块 code"
          },
          "serverIp" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string",
            "description" : "服务器 IP / 域名"
          },
          "serverPort" : {
            "maximum" : 65535,
            "minimum" : 1,
            "type" : "integer",
            "description" : "服务器端口",
            "format" : "int32"
          },
          "serverPassword" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string",
            "description" : "联机加入密码"
          },
          "maxPlayers" : {
            "maximum" : 10000,
            "minimum" : 1,
            "type" : "integer",
            "description" : "最大玩家数",
            "format" : "int32"
          },
          "serverVersion" : {
            "type" : "array",
            "description" : "服务器版本列表",
            "items" : {
              "type" : "string",
              "description" : "服务器版本列表"
            }
          },
          "mainPlayType" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "主打类型"
          },
          "serverType" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "服务器类型"
          },
          "runPlatform" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string",
            "description" : "运行平台"
          },
          "queryType" : {
            "maxLength" : 32,
            "minLength" : 0,
            "type" : "string",
            "description" : "查询协议"
          },
          "coverImageUrl" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string",
            "description" : "封面图 URL"
          },
          "mdContent" : {
            "maxLength" : 32768,
            "minLength" : 0,
            "type" : "string",
            "description" : "markdown 正文"
          },
          "onlineType" : {
            "type" : "string",
            "description" : "联机类型"
          },
          "isReqDownClient" : {
            "type" : "boolean",
            "description" : "是否需要下载客户端"
          },
          "resources" : {
            "maxItems" : 500,
            "minItems" : 0,
            "type" : "array",
            "description" : "资源清单",
            "items" : {
              "$ref" : "#/components/schemas/BaseOpenApiServerPostLobbyResourceItemParam"
            }
          }
        }
      },
      "BaseOpenApiServerPostLobbyReserveBatchParam" : {
        "required" : [ "items" ],
        "type" : "object",
        "properties" : {
          "items" : {
            "maxItems" : 50,
            "minItems" : 0,
            "type" : "array",
            "description" : "待占位的资源清单 (单次最多 50 条)",
            "items" : {
              "$ref" : "#/components/schemas/BaseOpenApiServerPostLobbyReserveItemParam"
            }
          }
        }
      },
      "BaseOpenApiServerPostLobbyReserveItemParam" : {
        "required" : [ "clientInstallPath", "name", "sha256", "sizeBytes" ],
        "type" : "object",
        "properties" : {
          "sha256" : {
            "pattern" : "^[a-f0-9]{64}$",
            "type" : "string",
            "description" : "文件 sha256 (小写 hex, 64 位)"
          },
          "sizeBytes" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "文件字节数",
            "format" : "int64"
          },
          "name" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string",
            "description" : "资源显示名 (联机小子列给玩家看)"
          },
          "clientInstallPath" : {
            "maxLength" : 512,
            "minLength" : 0,
            "type" : "string",
            "description" : "客户端相对安装路径 (如 mods/xxx.jar)"
          },
          "resourceType" : {
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string",
            "description" : "资源类型: mod / modpack / world / plugin / config / core / loader / dataPack"
          },
          "version" : {
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string",
            "description" : "版本号 (可空)"
          },
          "environmentSide" : {
            "pattern" : "^(SERVER|CLIENT|BOTH)$",
            "type" : "string",
            "description" : "环境端: SERVER / CLIENT / BOTH, 默认 BOTH"
          },
          "extraJson" : {
            "type" : "string",
            "description" : "兜底元数据 JSON (loader / gameVersion / dependencies 等)"
          }
        },
        "description" : "待占位的资源清单 (单次最多 50 条)"
      },
      "BaseOpenApiServerPostLobbyResourceItemParam" : {
        "required" : [ "name", "source" ],
        "type" : "object",
        "properties" : {
          "source" : {
            "pattern" : "^(COMMUNITY|BUILTIN|USER_UPLOAD)$",
            "type" : "string",
            "description" : "资源来源: COMMUNITY / BUILTIN / USER_UPLOAD"
          },
          "communityPostId" : {
            "type" : "integer",
            "description" : "社区资源帖 id (source=COMMUNITY 必填)",
            "format" : "int64"
          },
          "communityFileId" : {
            "type" : "integer",
            "description" : "社区资源文件 id (source=COMMUNITY 必填)",
            "format" : "int64"
          },
          "resourceType" : {
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string",
            "description" : "资源类型"
          },
          "name" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string",
            "description" : "资源显示名"
          },
          "version" : {
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string",
            "description" : "版本号"
          },
          "environmentSide" : {
            "pattern" : "^(SERVER|CLIENT|BOTH)$",
            "type" : "string",
            "description" : "环境端: SERVER / CLIENT / BOTH, 默认 BOTH"
          },
          "clientInstallPath" : {
            "maxLength" : 512,
            "minLength" : 0,
            "type" : "string",
            "description" : "客户端相对安装路径"
          },
          "sizeBytes" : {
            "type" : "integer",
            "description" : "文件字节数",
            "format" : "int64"
          },
          "sha256" : {
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string",
            "description" : "sha256"
          },
          "downloadUrl" : {
            "maxLength" : 1024,
            "minLength" : 0,
            "type" : "string",
            "description" : "下载 URL"
          },
          "downloadUrlExpiresAt" : {
            "type" : "string",
            "description" : "URL 过期时间",
            "format" : "date-time"
          },
          "extraJson" : {
            "type" : "string",
            "description" : "兜底元数据 JSON"
          }
        },
        "description" : "资源清单"
      },
      "CategoryNodeVO" : {
        "type" : "object",
        "properties" : {
          "categoryCode" : {
            "type" : "string",
            "description" : "分类 code（业务主键，URL 路径中使用）"
          },
          "name" : {
            "type" : "string",
            "description" : "分类名称"
          },
          "description" : {
            "type" : "string",
            "description" : "分类描述"
          },
          "iconUrl" : {
            "type" : "string",
            "description" : "分类图标 URL（已经过 buildDisplayUrl 处理）"
          },
          "parentCode" : {
            "type" : "string",
            "description" : "父分类 code（顶级分类为 null）"
          },
          "children" : {
            "type" : "array",
            "description" : "子分类节点（递归结构；叶子节点为空数组）",
            "items" : {
              "$ref" : "#/components/schemas/CategoryNodeVO"
            }
          },
          "postCount" : {
            "type" : "integer",
            "description" : "该分类下资源帖子总数（含子分类）",
            "format" : "int64"
          }
        },
        "description" : "返回数据"
      },
      "CommentVO" : {
        "type" : "object",
        "properties" : {
          "commentId" : {
            "type" : "integer",
            "description" : "评论 ID",
            "format" : "int64"
          },
          "userId" : {
            "type" : "integer",
            "description" : "评论发布者 ID",
            "format" : "int64"
          },
          "userName" : {
            "type" : "string",
            "description" : "评论发布者用户名"
          },
          "avatarUrl" : {
            "type" : "string",
            "description" : "评论发布者头像 URL（已经过 buildDisplayUrl 处理）"
          },
          "content" : {
            "type" : "string",
            "description" : "评论内容（HTML，已做 XSS 过滤）"
          },
          "parentId" : {
            "type" : "integer",
            "description" : "父评论 ID（顶级评论为 null）",
            "format" : "int64"
          },
          "replyCount" : {
            "type" : "integer",
            "description" : "子回复数量",
            "format" : "int32"
          },
          "likeCount" : {
            "type" : "integer",
            "description" : "点赞数",
            "format" : "int32"
          },
          "createTime" : {
            "type" : "string",
            "description" : "评论发布时间（yyyy-MM-dd HH:mm:ss）"
          }
        },
        "description" : "结果集"
      },
      "CommunityAnswerVO" : {
        "type" : "object",
        "properties" : {
          "answerId" : {
            "type" : "integer",
            "description" : "回答 ID",
            "format" : "int64"
          },
          "questionId" : {
            "type" : "integer",
            "description" : "所属问题 ID",
            "format" : "int64"
          },
          "parentAnswerId" : {
            "type" : "integer",
            "description" : "父回答 ID（楼中楼，无则为 null）",
            "format" : "int64"
          },
          "authorId" : {
            "type" : "integer",
            "description" : "回答作者用户 ID",
            "format" : "int64"
          },
          "authorName" : {
            "type" : "string",
            "description" : "回答作者昵称"
          },
          "authorAvatarUrl" : {
            "type" : "string",
            "description" : "回答作者头像 URL（已经过 buildDisplayUrl 处理）"
          },
          "content" : {
            "type" : "string",
            "description" : "回答正文 HTML 内容"
          },
          "mdContent" : {
            "type" : "string",
            "description" : "回答正文 Markdown 内容（无则为 null）"
          },
          "isAccepted" : {
            "type" : "boolean",
            "description" : "是否被采纳"
          },
          "upvoteCount" : {
            "type" : "integer",
            "description" : "赞同数",
            "format" : "int32"
          },
          "downvoteCount" : {
            "type" : "integer",
            "description" : "反对数",
            "format" : "int32"
          },
          "voteScore" : {
            "type" : "integer",
            "description" : "投票分",
            "format" : "int32"
          },
          "commentCount" : {
            "type" : "integer",
            "description" : "评论数",
            "format" : "int32"
          },
          "createTime" : {
            "type" : "string",
            "description" : "发布时间（yyyy-MM-dd HH:mm:ss）"
          }
        },
        "description" : "结果集"
      },
      "CommunityFollowUserVO" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "integer",
            "description" : "用户 ID",
            "format" : "int64"
          },
          "nickname" : {
            "type" : "string",
            "description" : "昵称"
          },
          "avatarUrl" : {
            "type" : "string",
            "description" : "头像 URL（已经过 buildDisplayUrl 处理）"
          },
          "bio" : {
            "type" : "string",
            "description" : "个性签名"
          },
          "followTime" : {
            "type" : "string",
            "description" : "关注关系建立时间（yyyy-MM-dd HH:mm:ss）"
          }
        },
        "description" : "结果集"
      },
      "CommunityMomentVO" : {
        "type" : "object",
        "properties" : {
          "momentId" : {
            "type" : "integer",
            "description" : "瞬间 ID",
            "format" : "int64"
          },
          "userId" : {
            "type" : "integer",
            "description" : "发布用户 ID",
            "format" : "int64"
          },
          "userName" : {
            "type" : "string",
            "description" : "发布用户昵称"
          },
          "avatarUrl" : {
            "type" : "string",
            "description" : "发布用户头像 URL（已经过 buildDisplayUrl 处理）"
          },
          "momentType" : {
            "type" : "string",
            "description" : "瞬间类型"
          },
          "content" : {
            "type" : "string",
            "description" : "瞬间正文内容"
          },
          "likeCount" : {
            "type" : "integer",
            "description" : "点赞数",
            "format" : "int32"
          },
          "commentCount" : {
            "type" : "integer",
            "description" : "评论数",
            "format" : "int32"
          },
          "collectCount" : {
            "type" : "integer",
            "description" : "收藏数",
            "format" : "int32"
          },
          "viewCount" : {
            "type" : "integer",
            "description" : "浏览数",
            "format" : "int32"
          },
          "createTime" : {
            "type" : "string",
            "description" : "发布时间（yyyy-MM-dd HH:mm:ss）"
          }
        },
        "description" : "结果集"
      },
      "CommunityPostDetailVO" : {
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "description" : "帖子 ID",
            "format" : "int64"
          },
          "title" : {
            "type" : "string",
            "description" : "帖子标题"
          },
          "sectionCode" : {
            "type" : "string",
            "description" : "所属板块（游戏）code"
          },
          "authorId" : {
            "type" : "integer",
            "description" : "作者用户 ID",
            "format" : "int64"
          },
          "authorName" : {
            "type" : "string",
            "description" : "作者昵称"
          },
          "authorAvatarUrl" : {
            "type" : "string",
            "description" : "作者头像 URL（已经过 buildDisplayUrl 处理）"
          },
          "summary" : {
            "type" : "string",
            "description" : "AI 摘要（无则为 null）"
          },
          "viewsCount" : {
            "type" : "integer",
            "description" : "浏览数",
            "format" : "int64"
          },
          "likeCount" : {
            "type" : "integer",
            "description" : "点赞数",
            "format" : "int64"
          },
          "commentCount" : {
            "type" : "integer",
            "description" : "评论数",
            "format" : "int64"
          },
          "collectionCount" : {
            "type" : "integer",
            "description" : "收藏数",
            "format" : "int64"
          },
          "publishTime" : {
            "type" : "string",
            "description" : "发布时间（yyyy-MM-dd HH:mm:ss）"
          },
          "updateTime" : {
            "type" : "string",
            "description" : "最近更新时间（yyyy-MM-dd HH:mm:ss）"
          },
          "content" : {
            "type" : "string",
            "description" : "正文 HTML 内容"
          },
          "mdContent" : {
            "type" : "string",
            "description" : "正文 Markdown 内容（无则为 null）"
          }
        },
        "description" : "返回数据"
      },
      "CommunityPostSummaryVO" : {
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "description" : "帖子 ID",
            "format" : "int64"
          },
          "title" : {
            "type" : "string",
            "description" : "帖子标题"
          },
          "sectionCode" : {
            "type" : "string",
            "description" : "所属板块（游戏）code"
          },
          "authorId" : {
            "type" : "integer",
            "description" : "作者用户 ID",
            "format" : "int64"
          },
          "authorName" : {
            "type" : "string",
            "description" : "作者昵称"
          },
          "authorAvatarUrl" : {
            "type" : "string",
            "description" : "作者头像 URL（已经过 buildDisplayUrl 处理）"
          },
          "summary" : {
            "type" : "string",
            "description" : "AI 摘要（无则为 null）"
          },
          "viewsCount" : {
            "type" : "integer",
            "description" : "浏览数",
            "format" : "int64"
          },
          "likeCount" : {
            "type" : "integer",
            "description" : "点赞数",
            "format" : "int64"
          },
          "commentCount" : {
            "type" : "integer",
            "description" : "评论数",
            "format" : "int64"
          },
          "collectionCount" : {
            "type" : "integer",
            "description" : "收藏数",
            "format" : "int64"
          },
          "publishTime" : {
            "type" : "string",
            "description" : "发布时间（yyyy-MM-dd HH:mm:ss）"
          },
          "updateTime" : {
            "type" : "string",
            "description" : "最近更新时间（yyyy-MM-dd HH:mm:ss）"
          }
        },
        "description" : "结果集"
      },
      "CommunityQuestionVO" : {
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "description" : "问答帖 ID",
            "format" : "int64"
          },
          "title" : {
            "type" : "string",
            "description" : "问题标题"
          },
          "sectionCode" : {
            "type" : "string",
            "description" : "所属板块（游戏）code"
          },
          "authorId" : {
            "type" : "integer",
            "description" : "提问者用户 ID",
            "format" : "int64"
          },
          "authorName" : {
            "type" : "string",
            "description" : "提问者昵称"
          },
          "authorAvatarUrl" : {
            "type" : "string",
            "description" : "提问者头像 URL（已经过 buildDisplayUrl 处理）"
          },
          "questionStatus" : {
            "type" : "string",
            "description" : "问题状态"
          },
          "isResolved" : {
            "type" : "boolean",
            "description" : "是否已解决"
          },
          "acceptedAnswerId" : {
            "type" : "integer",
            "description" : "采纳的回答 ID（未采纳为 null）",
            "format" : "int64"
          },
          "voteScore" : {
            "type" : "integer",
            "description" : "投票分",
            "format" : "int32"
          },
          "difficulty" : {
            "type" : "integer",
            "description" : "难度等级",
            "format" : "int32"
          },
          "tags" : {
            "type" : "array",
            "description" : "标签列表（已从逗号分隔串解析为数组）",
            "items" : {
              "type" : "string",
              "description" : "标签列表（已从逗号分隔串解析为数组）"
            }
          },
          "rewardAmount" : {
            "type" : "number",
            "description" : "悬赏金额（无悬赏为 null）"
          },
          "rewardCurrency" : {
            "type" : "string",
            "description" : "悬赏货币"
          },
          "viewsCount" : {
            "type" : "integer",
            "description" : "浏览数",
            "format" : "int64"
          },
          "commentCount" : {
            "type" : "integer",
            "description" : "回答数",
            "format" : "int64"
          },
          "content" : {
            "type" : "string",
            "description" : "正文 HTML 内容（仅详情接口返回）"
          },
          "mdContent" : {
            "type" : "string",
            "description" : "正文 Markdown 内容（仅详情接口返回）"
          },
          "publishTime" : {
            "type" : "string",
            "description" : "发布时间（yyyy-MM-dd HH:mm:ss）"
          },
          "updateTime" : {
            "type" : "string",
            "description" : "最近更新时间（yyyy-MM-dd HH:mm:ss）"
          }
        },
        "description" : "返回数据"
      },
      "CommunityUserProfileVO" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "integer",
            "description" : "用户 ID",
            "format" : "int64"
          },
          "nickname" : {
            "type" : "string",
            "description" : "昵称"
          },
          "avatarUrl" : {
            "type" : "string",
            "description" : "头像 URL（已经过 buildDisplayUrl 处理）"
          },
          "coverImageUrl" : {
            "type" : "string",
            "description" : "封面图 URL（已经过 buildDisplayUrl 处理）"
          },
          "bio" : {
            "type" : "string",
            "description" : "个性签名"
          },
          "location" : {
            "type" : "string",
            "description" : "地区"
          },
          "gender" : {
            "type" : "string",
            "description" : "性别"
          },
          "equippedTitleId" : {
            "type" : "integer",
            "description" : "穿戴头衔物品 ID（无则为 null）",
            "format" : "int64"
          },
          "avatarFrameId" : {
            "type" : "integer",
            "description" : "穿戴头像框物品 ID（无则为 null）",
            "format" : "int64"
          },
          "followingCount" : {
            "type" : "integer",
            "description" : "关注数（其关注的用户数）",
            "format" : "int64"
          },
          "followerCount" : {
            "type" : "integer",
            "description" : "粉丝数（关注其的用户数）",
            "format" : "int64"
          }
        },
        "description" : "返回数据"
      },
      "Dependency" : {
        "type" : "object",
        "properties" : {
          "resourcePostId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "name" : {
            "type" : "string"
          },
          "required" : {
            "type" : "boolean"
          },
          "versionRequirement" : {
            "type" : "string"
          }
        }
      },
      "DownloadAuthVo" : {
        "type" : "object",
        "properties" : {
          "fileInfoId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "fileTitle" : {
            "type" : "string"
          },
          "fileVersion" : {
            "type" : "string"
          },
          "resourceVersion" : {
            "type" : "string"
          },
          "runPlatform" : {
            "type" : "string"
          },
          "downloadInfos" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/DownloadInfo"
            }
          }
        },
        "description" : "返回数据"
      },
      "DownloadFailureReportParam" : {
        "required" : [ "failureType" ],
        "type" : "object",
        "properties" : {
          "fileInfoId" : {
            "type" : "integer",
            "description" : "上报的下载文件 ID（install-info 阶段未拿到时可留空）",
            "format" : "int64"
          },
          "failureType" : {
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string",
            "description" : "失败类型：INSTALL_INFO_UNAVAILABLE / UPSTREAM_UNREACHABLE / FILE_INVALID / EXTRACT_FAILED / STRUCTURE_INVALID / SERVER_BOOT_FAILED"
          },
          "resourceVersion" : {
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string",
            "description" : "上报时的资源版本快照（resource_post.resource_version），用于版本更新后清零判定"
          },
          "errorMsg" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "type" : "string",
            "description" : "客户端上报的错误描述（可为空；超过 1000 字符会被截断）"
          }
        },
        "description" : "消费端资源下载失败上报参数"
      },
      "DownloadInfo" : {
        "type" : "object",
        "properties" : {
          "downType" : {
            "type" : "string"
          },
          "downSource" : {
            "type" : "string"
          },
          "downLink" : {
            "type" : "string"
          },
          "downPwd" : {
            "type" : "string"
          },
          "extInfo" : {
            "type" : "string"
          }
        }
      },
      "FileDetailVO" : {
        "type" : "object",
        "properties" : {
          "fileInfoId" : {
            "type" : "integer",
            "description" : "文件信息 ID（resource_file_info.info_id）",
            "format" : "int64"
          },
          "resourcePostId" : {
            "type" : "integer",
            "description" : "所属资源帖子 ID",
            "format" : "int64"
          },
          "externalFileId" : {
            "type" : "string",
            "description" : "上游外部文件 ID（CurseForge / Modrinth 同步来源时存在，否则 null）"
          },
          "infoTitle" : {
            "type" : "string",
            "description" : "文件标题"
          },
          "fileVersion" : {
            "type" : "string",
            "description" : "文件业务版本号"
          },
          "fileStatus" : {
            "type" : "string",
            "description" : "文件状态（业务定义，如 PUBLISHED / DRAFT / DELETED）"
          },
          "runPlatform" : {
            "type" : "string",
            "description" : "运行平台 code"
          },
          "environmentSide" : {
            "type" : "string",
            "description" : "文件端侧:CLIENT/SERVER/BOTH,null=未指定(消费端如出租面板按主贴 clientEnvironment/serverEnvironment 兜底判断)"
          },
          "resourceVersion" : {
            "type" : "string",
            "description" : "对应资源版本号（与所属 resource_post.resource_version 对应）"
          },
          "isServerPack" : {
            "type" : "boolean",
            "description" : "是否上游\"服务端整合包\"(CurseForge server pack)。true=服务端包(与同 resourceVersion 的客户端包配对),消费端做同版本归纳时可精确配对而不必依赖文件名硬解析;null 视为普通文件。"
          },
          "parentExternalFileId" : {
            "type" : "string",
            "description" : "服务端整合包所属客户端文件的上游文件 ID(上游 parentProjectFileId)。仅 isServerPack=true 的行有值,其值等于配对客户端包的 externalFileId —— 消费端据此把\"同一个整合包版本的客户端包与服务端包\"精确归为一组(CurseForge 语义),不必再靠 fileVersion/文件名字符串猜。非服务端包或站内手建文件为空串。"
          },
          "mirrorStatus" : {
            "type" : "string",
            "description" : "镜像状态（NONE / PENDING / DONE / FAILED）"
          },
          "fileType" : {
            "type" : "string",
            "description" : "文件类型后缀（如 zip/jar/png），外链未镜像时为 null"
          },
          "mime" : {
            "type" : "string",
            "description" : "文件 MIME 类型，外链未镜像时为 null"
          },
          "fingerprint" : {
            "$ref" : "#/components/schemas/FingerprintVO"
          },
          "publishTime" : {
            "type" : "string",
            "description" : "发布时间（yyyy-MM-dd HH:mm:ss）"
          },
          "updateTime" : {
            "type" : "string",
            "description" : "更新时间（yyyy-MM-dd HH:mm:ss）"
          },
          "downType" : {
            "type" : "string",
            "description" : "下载类型（CLOUD_DISK / OUT_LINK）"
          },
          "downSource" : {
            "type" : "string",
            "description" : "下载来源（网盘平台或外链类型，如 BAIDU_PAN / DIRECT_LINK / CDN）"
          },
          "downLink" : {
            "type" : "string",
            "description" : "下载链接（外链原始 URL；站内 mirror 文件需走 download-auth 换取签名 URL）"
          },
          "downPwd" : {
            "type" : "string",
            "description" : "提取码（CLOUD_DISK 类型有效，OUT_LINK 为 null）"
          },
          "extInfo" : {
            "type" : "string",
            "description" : "链接附加描述（人类可读，例如\"解压密码：xxx\"）"
          }
        },
        "description" : "返回数据"
      },
      "FileDownloadUrlVO" : {
        "type" : "object",
        "properties" : {
          "fileInfoId" : {
            "type" : "integer",
            "description" : "文件信息 ID（resource_file_info.info_id）",
            "format" : "int64"
          },
          "resourcePostId" : {
            "type" : "integer",
            "description" : "所属资源帖子 ID",
            "format" : "int64"
          },
          "downType" : {
            "type" : "string",
            "description" : "下载类型（CLOUD_DISK / OUT_LINK；其他类型时为 null）"
          },
          "downSource" : {
            "type" : "string",
            "description" : "下载来源（如 BAIDU_PAN / DIRECT_LINK / CDN）"
          },
          "downloadUrl" : {
            "type" : "string",
            "description" : "下载链接 URL（外链原始 URL；站内 mirror 文件请改用 /download-auth 接口）"
          },
          "downPwd" : {
            "type" : "string",
            "description" : "提取码（CLOUD_DISK 类型有效，OUT_LINK 为 null）"
          }
        },
        "description" : "返回数据"
      },
      "FileSummaryVO" : {
        "type" : "object",
        "properties" : {
          "fileInfoId" : {
            "type" : "integer",
            "description" : "文件信息 ID（resource_file_info.info_id）",
            "format" : "int64"
          },
          "resourcePostId" : {
            "type" : "integer",
            "description" : "所属资源帖子 ID",
            "format" : "int64"
          },
          "externalFileId" : {
            "type" : "string",
            "description" : "上游外部文件 ID（CurseForge / Modrinth 同步来源时存在，否则 null）"
          },
          "infoTitle" : {
            "type" : "string",
            "description" : "文件标题"
          },
          "fileVersion" : {
            "type" : "string",
            "description" : "文件业务版本号"
          },
          "fileStatus" : {
            "type" : "string",
            "description" : "文件状态（业务定义，如 PUBLISHED / DRAFT / DELETED）"
          },
          "runPlatform" : {
            "type" : "string",
            "description" : "运行平台 code"
          },
          "environmentSide" : {
            "type" : "string",
            "description" : "文件端侧:CLIENT/SERVER/BOTH,null=未指定(消费端如出租面板按主贴 clientEnvironment/serverEnvironment 兜底判断)"
          },
          "resourceVersion" : {
            "type" : "string",
            "description" : "对应资源版本号（与所属 resource_post.resource_version 对应）"
          },
          "isServerPack" : {
            "type" : "boolean",
            "description" : "是否上游\"服务端整合包\"(CurseForge server pack)。true=服务端包(与同 resourceVersion 的客户端包配对),消费端做同版本归纳时可精确配对而不必依赖文件名硬解析;null 视为普通文件。"
          },
          "parentExternalFileId" : {
            "type" : "string",
            "description" : "服务端整合包所属客户端文件的上游文件 ID(上游 parentProjectFileId)。仅 isServerPack=true 的行有值,其值等于配对客户端包的 externalFileId —— 消费端据此把\"同一个整合包版本的客户端包与服务端包\"精确归为一组(CurseForge 语义),不必再靠 fileVersion/文件名字符串猜。非服务端包或站内手建文件为空串。"
          },
          "mirrorStatus" : {
            "type" : "string",
            "description" : "镜像状态（NONE / PENDING / DONE / FAILED）"
          },
          "fileType" : {
            "type" : "string",
            "description" : "文件类型后缀（如 zip/jar/png），外链未镜像时为 null"
          },
          "mime" : {
            "type" : "string",
            "description" : "文件 MIME 类型，外链未镜像时为 null"
          },
          "fingerprint" : {
            "$ref" : "#/components/schemas/FingerprintVO"
          },
          "publishTime" : {
            "type" : "string",
            "description" : "发布时间（yyyy-MM-dd HH:mm:ss）"
          },
          "updateTime" : {
            "type" : "string",
            "description" : "更新时间（yyyy-MM-dd HH:mm:ss）"
          }
        },
        "description" : "返回数据"
      },
      "FilterOptionVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "string",
            "description" : "选项 code（section_ext_info.info_id 字符串；作为过滤值回传）"
          },
          "name" : {
            "type" : "string",
            "description" : "选项名称"
          },
          "parentCode" : {
            "type" : "string",
            "description" : "父级 code（mainCategories 指向 resourceTypes.code；其余为 null）"
          },
          "serverInstallable" : {
            "type" : "boolean",
            "description" : "该类型是否适合安装到服务器(仅 resourceTypes 有值,其余为 null)。true=可装;false=不适合(resource_install_default.server_install_path 为 NULL,如 MC shader/modpack); null=未在默认表中配置(消费端按乐观放行处理)。出租/服务器面板据此过滤类型下拉,避免露出仅客户端类型。"
          }
        },
        "description" : "筛选选项"
      },
      "FingerprintVO" : {
        "type" : "object",
        "properties" : {
          "sha1" : {
            "type" : "string",
            "description" : "SHA1 哈希（大写，40 字符；主算法，所有客户端通用）"
          },
          "md5" : {
            "type" : "string",
            "description" : "MD5 哈希（大写，32 字符；为兼容老客户端提供）"
          },
          "murmur2" : {
            "type" : "string",
            "description" : "Murmur2 哈希（32 位无符号，CurseForge 启动器默认算法）"
          },
          "size" : {
            "type" : "integer",
            "description" : "文件字节大小（用于二次校验）",
            "format" : "int64"
          }
        },
        "description" : "指纹（仅 mirror_status=DONE 或上游回填后非空，否则 null）"
      },
      "InstallConfigVo" : {
        "type" : "object",
        "properties" : {
          "configVersion" : {
            "type" : "string"
          },
          "resourcePostId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "resourceName" : {
            "type" : "string"
          },
          "resourceVersion" : {
            "type" : "string"
          },
          "platform" : {
            "type" : "string"
          },
          "preChecks" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PreCheck"
            }
          },
          "dependencies" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Dependency"
            }
          },
          "steps" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/InstallStep"
            }
          },
          "postActions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PostAction"
            }
          }
        },
        "description" : "返回数据"
      },
      "InstallFileInfo" : {
        "type" : "object",
        "properties" : {
          "serverPackLayout" : {
            "$ref" : "#/components/schemas/ServerPackLayout"
          },
          "index" : {
            "type" : "integer",
            "description" : "文件序号（从 0 开始，对应 FMSL 中的 @N）",
            "format" : "int32"
          },
          "fileId" : {
            "type" : "integer",
            "description" : "resource_file_info.info_id,稳定主键。cloudexplorer 侧上报该文件下载失败时按此 id 回传",
            "format" : "int64"
          },
          "name" : {
            "type" : "string",
            "description" : "文件标题"
          },
          "url" : {
            "type" : "string",
            "description" : "下载链接（站内直链或外链，可能为 null）"
          },
          "size" : {
            "type" : "integer",
            "description" : "文件字节数（外链/网盘或未镜像时为 null）",
            "format" : "int64"
          },
          "downType" : {
            "type" : "string",
            "description" : "下载类型：DIRECT_UPLOAD / CLOUD_DISK / DIRECT_LINK"
          },
          "downSource" : {
            "type" : "string",
            "description" : "网盘平台或外链来源"
          },
          "downPwd" : {
            "type" : "string",
            "description" : "提取码（网盘文件时可能有值）"
          },
          "fileHash" : {
            "type" : "string",
            "description" : "文件完整性校验哈希（仅 DIRECT_UPLOAD 站内文件有值）"
          },
          "hashAlgo" : {
            "type" : "string",
            "description" : "fileHash 的算法（当前为 MD5）"
          },
          "fileVersion" : {
            "type" : "string",
            "description" : "文件版本（语义版本字符串）"
          },
          "runPlatform" : {
            "type" : "string",
            "description" : "运行平台代码"
          },
          "runPlatformName" : {
            "type" : "string",
            "description" : "运行平台名称"
          },
          "environmentSide" : {
            "type" : "string",
            "description" : "文件端侧:CLIENT/SERVER/BOTH,null=未指定(消费端如出租面板按主贴 clientEnvironment/serverEnvironment 兜底判断)"
          },
          "resourceVersionNames" : {
            "type" : "array",
            "description" : "该文件声明的兼容游戏版本名列表",
            "items" : {
              "type" : "string",
              "description" : "该文件声明的兼容游戏版本名列表"
            }
          },
          "fileStatus" : {
            "type" : "string",
            "description" : "文件状态(PUBLISHED/BETA/DRAFT 等);消费端稳定推荐时按 PUBLISHED 优先"
          },
          "recommended" : {
            "type" : "boolean",
            "description" : "推荐首选文件标记(整帖仅一份为 true);消费端一键安装时按此挑,避免每次漂移"
          },
          "isServerPack" : {
            "type" : "boolean",
            "description" : "是否上游「服务端整合包」；true=服务端包，null=普通文件（不下发 false）"
          },
          "upstreamFileId" : {
            "type" : "string",
            "description" : "上游侧文件 ID(resource_file_info.external_file_id)；与 externalFileId 语义不同"
          },
          "upstreamParentFileId" : {
            "type" : "string",
            "description" : "服务端包所属客户端文件的上游 ID；等于配对客户端包的 upstreamFileId"
          }
        },
        "description" : "安装文件信息"
      },
      "InstallLaunchVo" : {
        "type" : "object",
        "properties" : {
          "resourcePostId" : {
            "type" : "integer",
            "description" : "资源帖ID",
            "format" : "int64"
          },
          "deeplink" : {
            "type" : "string",
            "description" : "桌面端唤起 deeplink（fmod://install?source=ue-forum&postId=X）"
          },
          "scheme" : {
            "type" : "string",
            "description" : "自定义协议 scheme",
            "example" : "fmod"
          },
          "detectUrl" : {
            "type" : "string",
            "description" : "客户端本地探测地址（GET 返回 200 表示 fmod 已安装运行）"
          },
          "downloadPageUrl" : {
            "type" : "string",
            "description" : "桌面端下载引导页 URL（未探测到客户端时跳转；未配置时为 null）"
          },
          "sourceType" : {
            "type" : "string",
            "description" : "外部搬运来源类型（如 STEAM_WORKSHOP，站内原创资源为 null）"
          },
          "installable" : {
            "type" : "boolean",
            "description" : "资源是否可安装（对外可见即为 true）"
          }
        },
        "description" : "资源一键安装唤起信息"
      },
      "InstallStep" : {
        "type" : "object",
        "properties" : {
          "order" : {
            "type" : "integer",
            "format" : "int32"
          },
          "type" : {
            "type" : "string"
          },
          "source" : {
            "type" : "string"
          },
          "target" : {
            "type" : "string"
          },
          "overwrite" : {
            "type" : "boolean"
          },
          "backup" : {
            "type" : "boolean"
          },
          "description" : {
            "type" : "string"
          }
        }
      },
      "LuceneSearchResultVo" : {
        "type" : "object",
        "properties" : {
          "documentId" : {
            "type" : "string",
            "description" : "文档ID"
          },
          "documentType" : {
            "type" : "string",
            "description" : "文档类型：discuss_post, resource_post, server_post, wiki_post, tutorial_post, user, group"
          },
          "entityId" : {
            "type" : "integer",
            "description" : "帖子/实体ID",
            "format" : "int64"
          },
          "title" : {
            "type" : "string",
            "description" : "标题"
          },
          "mainName" : {
            "type" : "string",
            "description" : "主名（中文名）"
          },
          "subName" : {
            "type" : "string",
            "description" : "副名（英文名）"
          },
          "content" : {
            "type" : "string",
            "description" : "内容摘要"
          },
          "aiTldr" : {
            "type" : "string",
            "description" : "AI 一句话摘要（TL;DR）"
          },
          "tags" : {
            "type" : "string",
            "description" : "标签"
          },
          "sectionCode" : {
            "type" : "string",
            "description" : "板块代码"
          },
          "sectionName" : {
            "type" : "string",
            "description" : "板块名称"
          },
          "sectionLogo" : {
            "type" : "string",
            "description" : "板块Logo"
          },
          "status" : {
            "type" : "string",
            "description" : "状态"
          },
          "createBy" : {
            "type" : "integer",
            "description" : "创建者ID",
            "format" : "int64"
          },
          "authorName" : {
            "type" : "string",
            "description" : "作者名称"
          },
          "authorAvatar" : {
            "type" : "string",
            "description" : "作者头像"
          },
          "viewsCount" : {
            "type" : "integer",
            "description" : "浏览量",
            "format" : "int64"
          },
          "likesCount" : {
            "type" : "integer",
            "description" : "点赞数",
            "format" : "int64"
          },
          "commentCount" : {
            "type" : "integer",
            "description" : "评论数",
            "format" : "int64"
          },
          "score" : {
            "type" : "number",
            "description" : "相关度得分",
            "format" : "float"
          },
          "highlightedTitle" : {
            "type" : "string",
            "description" : "高亮标题"
          },
          "highlightedContent" : {
            "type" : "string",
            "description" : "高亮内容"
          },
          "highlightedMainName" : {
            "type" : "string",
            "description" : "高亮主名（中文名）"
          },
          "highlightedSubName" : {
            "type" : "string",
            "description" : "高亮副名（英文名）"
          },
          "isRecommend" : {
            "type" : "boolean",
            "description" : "是否推荐/精华"
          },
          "isHot" : {
            "type" : "boolean",
            "description" : "是否热门"
          },
          "coverImage" : {
            "type" : "string",
            "description" : "封面图片"
          },
          "createTime" : {
            "type" : "integer",
            "description" : "创建时间（时间戳）",
            "format" : "int64"
          },
          "updateTime" : {
            "type" : "integer",
            "description" : "更新时间（时间戳）",
            "format" : "int64"
          }
        },
        "description" : "Lucene搜索结果"
      },
      "McStartupCommandReportParam" : {
        "required" : [ "command", "source" ],
        "type" : "object",
        "properties" : {
          "command" : {
            "maxLength" : 8192,
            "minLength" : 0,
            "type" : "string",
            "description" : "实际写入面板 startup 的完整启动命令"
          },
          "source" : {
            "maxLength" : 32,
            "minLength" : 0,
            "type" : "string",
            "description" : "推断来源:upstream(mzgf openapi 返回) / ai(消费端 AI 生成) / heuristic(启发式) / manual(手填) / unknown"
          },
          "runPlatform" : {
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string",
            "description" : "运行平台(paper/vanilla/forge/neoforge/fabric/...),可选"
          },
          "mcVersion" : {
            "maxLength" : 32,
            "minLength" : 0,
            "type" : "string",
            "description" : "Minecraft 版本(1.20.1 等),可选"
          },
          "serverType" : {
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string",
            "description" : "服务端类型:预留字段,与 runPlatform 语义重合时可留空"
          }
        },
        "description" : "MC 一键启动命令消费端回传参数"
      },
      "McStartupCommandVo" : {
        "type" : "object",
        "properties" : {
          "resourcePostId" : {
            "type" : "integer",
            "description" : "资源帖ID",
            "format" : "int64"
          },
          "machineMemoryMb" : {
            "type" : "integer",
            "description" : "调用方声明的可用机器内存(MB)",
            "format" : "int32"
          },
          "allocatedHeapMb" : {
            "type" : "integer",
            "description" : "实际分配给 JVM 的堆内存 -Xmx / -Xms(MB)",
            "format" : "int32"
          },
          "runPlatform" : {
            "type" : "string",
            "description" : "运行平台代码(paper/vanilla/forge/neoforge/fabric/spigot/...)"
          },
          "serverJar" : {
            "type" : "string",
            "description" : "服务端主 jar 相对路径(未在 install-info 中确定时给出通用兜底: server.jar)"
          },
          "command" : {
            "type" : "string",
            "description" : "完整一键启动 shell 命令"
          },
          "notes" : {
            "type" : "string",
            "description" : "生成命令时使用的说明/注意事项，供 UI 展示"
          }
        },
        "description" : "Minecraft 一键启动命令"
      },
      "MessageVO" : {
        "type" : "object",
        "properties" : {
          "messageId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "messageType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "receiverUserId" : {
            "type" : "integer",
            "description" : "接收者id",
            "format" : "int64"
          },
          "receiverUserNickname" : {
            "type" : "string",
            "description" : "接收者昵称"
          },
          "dataId" : {
            "type" : "string",
            "description" : "相关业务id"
          },
          "title" : {
            "type" : "string",
            "description" : "消息标题"
          },
          "content" : {
            "type" : "string",
            "description" : "消息内容"
          },
          "readFlag" : {
            "type" : "boolean",
            "description" : "是否已读"
          },
          "readTime" : {
            "type" : "string",
            "description" : "已读时间"
          },
          "createTime" : {
            "type" : "string",
            "description" : "创建时间"
          },
          "enableJump" : {
            "type" : "boolean",
            "description" : "是否启用跳转"
          },
          "jumpUrl" : {
            "type" : "string",
            "description" : "跳转URL"
          }
        },
        "description" : "结果集"
      },
      "ModDescriptionVO" : {
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "description" : "资源帖子 ID",
            "format" : "int64"
          },
          "html" : {
            "type" : "string",
            "description" : "HTML 格式描述（已渲染富文本，可直接展示）"
          },
          "markdown" : {
            "type" : "string",
            "description" : "Markdown 原始描述（用于二次渲染或离线展示）"
          },
          "updateTime" : {
            "type" : "string",
            "description" : "描述最近更新时间（yyyy-MM-dd HH:mm:ss）"
          }
        },
        "description" : "返回数据"
      },
      "ModDetailVO" : {
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "description" : "资源帖子 ID",
            "format" : "int64"
          },
          "mainName" : {
            "type" : "string",
            "description" : "资源主标题"
          },
          "subName" : {
            "type" : "string",
            "description" : "副标题"
          },
          "introduction" : {
            "type" : "string",
            "description" : "资源简介（短文，<500 字；列表/卡片展示用，完整描述见 description 接口）"
          },
          "abbrName" : {
            "type" : "string",
            "description" : "缩写名（用于 URL slug 等场景）"
          },
          "coverImageUrl" : {
            "type" : "string",
            "description" : "封面图 URL（已经过 buildDisplayUrl 处理）"
          },
          "detailUrl" : {
            "type" : "string",
            "description" : "资源源页面 URL（论坛站点资源详情页，可在浏览器直接打开；站点域名未配置时为空）"
          },
          "sectionCode" : {
            "type" : "string",
            "description" : "所属板块（游戏）code"
          },
          "mainCategories" : {
            "type" : "array",
            "description" : "主要分类列表（已从逗号分隔串解析为数组，最多 5 个）",
            "items" : {
              "type" : "string",
              "description" : "主要分类列表（已从逗号分隔串解析为数组，最多 5 个）"
            }
          },
          "presetCategory" : {
            "type" : "string",
            "description" : "预设类目（存档广场聚合场景使用，普通资源为 null）"
          },
          "resourceType" : {
            "type" : "string",
            "description" : "资源类型 code（如 mod / shader / map）"
          },
          "runPlatform" : {
            "type" : "string",
            "description" : "运行平台 code（如 forge / fabric / vanilla）"
          },
          "clientEnvironment" : {
            "type" : "string",
            "description" : "客户端运行环境"
          },
          "serverEnvironment" : {
            "type" : "string",
            "description" : "服务端运行环境"
          },
          "clientInstallPath" : {
            "type" : "string",
            "description" : "客户端安装位置(相对游戏根目录);clientEnvironment=NO_NEED 时可能为空"
          },
          "serverInstallPath" : {
            "type" : "string",
            "description" : "服务端安装位置(相对游戏根目录);serverEnvironment=NO_NEED 时可能为空。出租等服务端场景据此决定文件落位"
          },
          "serverInstallable" : {
            "type" : "boolean",
            "description" : "该资源是否适合安装到服务器(mzgf 权威声明)。true=可装(作者填了 serverInstallPath,或默认表推荐了服务端位置); false=不适合(serverEnvironment=NO_NEED,或默认表明确 server_install_path=NULL,如 MC 的 shader/modpack/resource); null=旧版本 VO 尚未打标(消费端可回退到 serverEnvironment 判断)。 出租/服务器面板据此过滤列表、灰化「安装到服务器」按钮。"
          },
          "resourceVersion" : {
            "type" : "string",
            "description" : "当前资源版本号（业务语义版本，非帖子版本）"
          },
          "resourceState" : {
            "type" : "string",
            "description" : "资源状态（ACTIVE / SEMI_ABANDONED / ABANDONED / UNKNOWN）"
          },
          "authors" : {
            "type" : "array",
            "description" : "作者列表（含主作者与协作者，按角色顺序）",
            "items" : {
              "$ref" : "#/components/schemas/AuthorBriefVO"
            }
          },
          "isPaid" : {
            "type" : "boolean",
            "description" : "是否付费资源"
          },
          "priceAmount" : {
            "type" : "number",
            "description" : "价格金额（isPaid=true 时有效）"
          },
          "priceCurrencyCode" : {
            "type" : "string",
            "description" : "价格货币代码（ISO 4217）"
          },
          "viewsCount" : {
            "type" : "integer",
            "description" : "浏览数",
            "format" : "int64"
          },
          "downloadCount" : {
            "type" : "integer",
            "description" : "下载次数",
            "format" : "int64"
          },
          "likeCount" : {
            "type" : "integer",
            "description" : "点赞数",
            "format" : "int64"
          },
          "collectionCount" : {
            "type" : "integer",
            "description" : "收藏数",
            "format" : "int64"
          },
          "commentCount" : {
            "type" : "integer",
            "description" : "评论数",
            "format" : "int64"
          },
          "averageRating" : {
            "type" : "number",
            "description" : "平均评分（0~5，保留两位小数）",
            "format" : "double"
          },
          "ratingCount" : {
            "type" : "integer",
            "description" : "评分总人数",
            "format" : "int64"
          },
          "publishTime" : {
            "type" : "string",
            "description" : "首次发布时间（yyyy-MM-dd HH:mm:ss）"
          },
          "updateTime" : {
            "type" : "string",
            "description" : "最近更新时间（yyyy-MM-dd HH:mm:ss）"
          },
          "contentCopyright" : {
            "type" : "string",
            "description" : "内容版权说明"
          },
          "resourceCopyright" : {
            "type" : "string",
            "description" : "资源版权说明"
          },
          "creationType" : {
            "type" : "string",
            "description" : "创作类型（ORIGINAL / DERIVATIVE / TRANSLATION / IMPORT 等）"
          },
          "sourceState" : {
            "type" : "string",
            "description" : "开源状态（OPEN / CLOSED / UNKNOWN）"
          },
          "refLink" : {
            "type" : "string",
            "description" : "相关链接（外站、官网、源码等）"
          },
          "visibility" : {
            "type" : "string",
            "description" : "可见范围（PUBLIC / PRIVATE / FOLLOWERS）"
          },
          "downloadPermission" : {
            "type" : "string",
            "description" : "下载权限（PUBLIC / REGISTERED / MEMBERS）"
          },
          "commentPermission" : {
            "type" : "string",
            "description" : "评论权限（EVERYONE / REGISTERED / MEMBERS / DISABLED）"
          },
          "postVersion" : {
            "type" : "integer",
            "description" : "帖子内部版本号（用于乐观锁与版本链管理）",
            "format" : "int32"
          },
          "parentPostId" : {
            "type" : "integer",
            "description" : "父帖子 ID（版本链根，详见 ResourcePostEntity.parentPostId）",
            "format" : "int64"
          },
          "displayImages" : {
            "type" : "array",
            "description" : "展示图片 URL 列表（最多 5 张，已经过 buildDisplayUrl 处理）",
            "items" : {
              "type" : "string",
              "description" : "展示图片 URL 列表（最多 5 张，已经过 buildDisplayUrl 处理）"
            }
          },
          "links" : {
            "type" : "array",
            "description" : "结构化外部链接列表（如官网/源码/Wiki/Discord 等；refLink 字段为简单字符串形式，二者并存）",
            "items" : {
              "$ref" : "#/components/schemas/ModLinkVO"
            }
          },
          "stats" : {
            "$ref" : "#/components/schemas/OpenApiStatsBriefVO"
          },
          "enableVersionGrouping" : {
            "type" : "boolean",
            "description" : "所属板块是否启用\"同版本文件归纳\"。true=前端(资源详情页/出租资源中心)应把同 resourceVersion+runPlatform 下的客户端/服务端文件合并成一行展示;null/false=按原始平铺列表展示。"
          }
        },
        "description" : "返回数据"
      },
      "ModLinkVO" : {
        "type" : "object",
        "properties" : {
          "linkType" : {
            "type" : "string",
            "description" : "链接类型（如 HOMEPAGE / SOURCE / WIKI / DISCORD / ISSUE_TRACKER）"
          },
          "url" : {
            "type" : "string",
            "description" : "完整链接 URL"
          },
          "label" : {
            "type" : "string",
            "description" : "显示文本（可选，用于前端展示标签；未提供则使用 linkType 默认翻译）"
          }
        },
        "description" : "结构化外部链接列表（如官网/源码/Wiki/Discord 等；refLink 字段为简单字符串形式，二者并存）"
      },
      "ModSummaryVO" : {
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "description" : "资源帖子 ID",
            "format" : "int64"
          },
          "mainName" : {
            "type" : "string",
            "description" : "资源主标题"
          },
          "subName" : {
            "type" : "string",
            "description" : "副标题"
          },
          "introduction" : {
            "type" : "string",
            "description" : "资源简介（短文，<500 字；列表/卡片展示用，完整描述见 description 接口）"
          },
          "abbrName" : {
            "type" : "string",
            "description" : "缩写名（用于 URL slug 等场景）"
          },
          "coverImageUrl" : {
            "type" : "string",
            "description" : "封面图 URL（已经过 buildDisplayUrl 处理）"
          },
          "detailUrl" : {
            "type" : "string",
            "description" : "资源源页面 URL（论坛站点资源详情页，可在浏览器直接打开；站点域名未配置时为空）"
          },
          "sectionCode" : {
            "type" : "string",
            "description" : "所属板块（游戏）code"
          },
          "mainCategories" : {
            "type" : "array",
            "description" : "主要分类列表（已从逗号分隔串解析为数组，最多 5 个）",
            "items" : {
              "type" : "string",
              "description" : "主要分类列表（已从逗号分隔串解析为数组，最多 5 个）"
            }
          },
          "presetCategory" : {
            "type" : "string",
            "description" : "预设类目（存档广场聚合场景使用，普通资源为 null）"
          },
          "resourceType" : {
            "type" : "string",
            "description" : "资源类型 code（如 mod / shader / map）"
          },
          "runPlatform" : {
            "type" : "string",
            "description" : "运行平台 code（如 forge / fabric / vanilla）"
          },
          "clientEnvironment" : {
            "type" : "string",
            "description" : "客户端运行环境 REQUIRED/OPTIONAL/NO_NEED/UNKNOWN(消费端可据此判断资源是否给客户端用)"
          },
          "serverEnvironment" : {
            "type" : "string",
            "description" : "服务端运行环境 REQUIRED/OPTIONAL/NO_NEED/UNKNOWN(消费端可据此判断资源是否给服务端用)"
          },
          "clientInstallPath" : {
            "type" : "string",
            "description" : "客户端安装位置(相对游戏根目录);NO_NEED 侧可能为空"
          },
          "serverInstallPath" : {
            "type" : "string",
            "description" : "服务端安装位置(相对游戏根目录);NO_NEED 侧可能为空"
          },
          "serverInstallable" : {
            "type" : "boolean",
            "description" : "该资源是否适合安装到服务器(mzgf 权威声明)。true=可装(作者填了 serverInstallPath,或默认表推荐了服务端位置); false=不适合(serverEnvironment=NO_NEED,或默认表明确 server_install_path=NULL,如 MC 的 shader/modpack/resource); null=旧版本 VO 尚未打标(消费端可回退到 serverEnvironment 判断)。 出租/服务器面板据此过滤列表、灰化「安装到服务器」按钮。"
          },
          "resourceVersion" : {
            "type" : "string",
            "description" : "当前资源版本号（业务语义版本，非帖子版本）"
          },
          "resourceState" : {
            "type" : "string",
            "description" : "资源状态（ACTIVE / SEMI_ABANDONED / ABANDONED / UNKNOWN）"
          },
          "authors" : {
            "type" : "array",
            "description" : "作者列表（含主作者与协作者，按角色顺序）",
            "items" : {
              "$ref" : "#/components/schemas/AuthorBriefVO"
            }
          },
          "isPaid" : {
            "type" : "boolean",
            "description" : "是否付费资源"
          },
          "priceAmount" : {
            "type" : "number",
            "description" : "价格金额（isPaid=true 时有效）"
          },
          "priceCurrencyCode" : {
            "type" : "string",
            "description" : "价格货币代码（ISO 4217）"
          },
          "viewsCount" : {
            "type" : "integer",
            "description" : "浏览数",
            "format" : "int64"
          },
          "downloadCount" : {
            "type" : "integer",
            "description" : "下载次数",
            "format" : "int64"
          },
          "likeCount" : {
            "type" : "integer",
            "description" : "点赞数",
            "format" : "int64"
          },
          "collectionCount" : {
            "type" : "integer",
            "description" : "收藏数",
            "format" : "int64"
          },
          "commentCount" : {
            "type" : "integer",
            "description" : "评论数",
            "format" : "int64"
          },
          "averageRating" : {
            "type" : "number",
            "description" : "平均评分（0~5，保留两位小数）",
            "format" : "double"
          },
          "ratingCount" : {
            "type" : "integer",
            "description" : "评分总人数",
            "format" : "int64"
          },
          "publishTime" : {
            "type" : "string",
            "description" : "首次发布时间（yyyy-MM-dd HH:mm:ss）"
          },
          "updateTime" : {
            "type" : "string",
            "description" : "最近更新时间（yyyy-MM-dd HH:mm:ss）"
          }
        },
        "description" : "返回数据"
      },
      "OpenApiAccessTokenIssueParam" : {
        "required" : [ "authCode", "userId" ],
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "integer",
            "description" : "目标代理用户 ID（用户必须已在 biz 前端授权页完成确认，并生成对应授权 code）",
            "format" : "int64"
          },
          "authCode" : {
            "maxLength" : 6,
            "minLength" : 6,
            "pattern" : "^[A-Z0-9]{6}$",
            "type" : "string",
            "description" : "biz 前端授权页输出的 6 位授权码（仅大写字母与数字，5 分钟内有效）"
          },
          "requestedScopes" : {
            "maxItems" : 16,
            "minItems" : 0,
            "type" : "array",
            "description" : "申请的权限 scope 列表（必须是该 App 已审核通过的权限点子集，与 OpenApiConstant.PERMISSION 对齐）。可空，空时不下发 scope 限制。",
            "items" : {
              "type" : "string",
              "description" : "申请的权限 scope 列表（必须是该 App 已审核通过的权限点子集，与 OpenApiConstant.PERMISSION 对齐）。可空，空时不下发 scope 限制。"
            }
          }
        }
      },
      "OpenApiAccessTokenVO" : {
        "type" : "object",
        "properties" : {
          "accessToken" : {
            "type" : "string",
            "description" : "访问令牌（写接口请求时通过 X-Proxy-Access-Token 头携带）"
          },
          "userId" : {
            "type" : "string",
            "description" : "代理用户 ID（字符串形式，与 OpenApiProxyUserRegisterVO 保持一致）"
          },
          "scopes" : {
            "type" : "array",
            "description" : "授权 scope 列表",
            "items" : {
              "type" : "string",
              "description" : "授权 scope 列表"
            }
          },
          "issuedAt" : {
            "type" : "string",
            "description" : "颁发时间（yyyy-MM-dd HH:mm:ss）"
          },
          "expiresAt" : {
            "type" : "string",
            "description" : "过期时间（yyyy-MM-dd HH:mm:ss）"
          },
          "tokenType" : {
            "type" : "string",
            "description" : "token 类型，固定为 Bearer"
          },
          "expiresInSeconds" : {
            "type" : "integer",
            "description" : "有效时长（秒）",
            "format" : "int64"
          }
        },
        "description" : "返回数据"
      },
      "OpenApiBatchPostDetailParam" : {
        "required" : [ "postIds" ],
        "type" : "object",
        "properties" : {
          "postIds" : {
            "maxItems" : 20,
            "minItems" : 0,
            "type" : "array",
            "description" : "帖子 ID 列表（最多 20 条）",
            "example" : [ 1001, 1002 ],
            "items" : {
              "type" : "integer",
              "description" : "帖子 ID 列表（最多 20 条）",
              "format" : "int64"
            }
          }
        }
      },
      "OpenApiFileBatchParam" : {
        "required" : [ "fileInfoIds" ],
        "type" : "object",
        "properties" : {
          "fileInfoIds" : {
            "maxItems" : 50,
            "minItems" : 0,
            "type" : "array",
            "description" : "文件信息 ID 列表（对应 resource_file_info.info_id；1~50）",
            "items" : {
              "type" : "integer",
              "description" : "文件信息 ID 列表（对应 resource_file_info.info_id；1~50）",
              "format" : "int64"
            }
          }
        }
      },
      "OpenApiForumStatsVo" : {
        "type" : "object",
        "properties" : {
          "totalResourcePosts" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalDiscussPosts" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalServerPosts" : {
            "type" : "integer",
            "format" : "int64"
          },
          "totalUsers" : {
            "type" : "integer",
            "format" : "int64"
          },
          "todayNewPosts" : {
            "type" : "integer",
            "format" : "int64"
          },
          "statsTime" : {
            "type" : "string"
          }
        },
        "description" : "返回数据"
      },
      "OpenApiInstallInfoVo" : {
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "description" : "帖子ID",
            "format" : "int64"
          },
          "name" : {
            "type" : "string",
            "description" : "资源名称"
          },
          "version" : {
            "type" : "string",
            "description" : "资源版本"
          },
          "game" : {
            "type" : "string",
            "description" : "游戏板块代码"
          },
          "script" : {
            "type" : "string",
            "description" : "FMSL 安装脚本内容（可能为 null）"
          },
          "scriptSignature" : {
            "type" : "string",
            "description" : "FMSL 安装脚本服务端 RSA-SHA256 签名（Base64）；脚本为空或未配置签名私钥时为 null"
          },
          "scriptSource" : {
            "type" : "string",
            "description" : "脚本来源：AUTHOR=作者编写，AI=AI生成，null=无脚本"
          },
          "scriptSummary" : {
            "type" : "string",
            "description" : "安装概要：脚本的人类可读文字说明；null=无概要"
          },
          "postUrl" : {
            "type" : "string",
            "description" : "帖子地址（前端页面 URL）"
          },
          "sourceType" : {
            "type" : "string",
            "description" : "外部搬运来源类型（如 STEAM_WORKSHOP，站内原创资源为 null）"
          },
          "externalId" : {
            "type" : "string",
            "description" : "外部源主键（Steam 创意工坊为 publishedfileid，站内原创资源为 null）"
          },
          "externalGameId" : {
            "type" : "string",
            "description" : "来源侧游戏 ID（Steam 为 consumer_appid，站内原创资源为 null）"
          },
          "externalUrl" : {
            "type" : "string",
            "description" : "外部源详情页完整 URL（站内原创资源为 null）"
          },
          "files" : {
            "type" : "array",
            "description" : "文件列表（按顺序对应 FMSL 中 @0 @1 等引用）",
            "items" : {
              "$ref" : "#/components/schemas/InstallFileInfo"
            }
          },
          "verifiedGameVersions" : {
            "type" : "array",
            "description" : "社区验证可用的游戏版本（按成功安装数降序）",
            "items" : {
              "type" : "string",
              "description" : "社区验证可用的游戏版本（按成功安装数降序）"
            }
          }
        },
        "description" : "资源一键安装信息"
      },
      "OpenApiNotificationReadParam" : {
        "required" : [ "messageIds" ],
        "type" : "object",
        "properties" : {
          "messageIds" : {
            "maxItems" : 100,
            "minItems" : 0,
            "type" : "array",
            "description" : "待标记已读的消息 ID 列表",
            "items" : {
              "type" : "integer",
              "description" : "待标记已读的消息 ID 列表",
              "format" : "int64"
            }
          }
        }
      },
      "OpenApiPairingRedeemParam" : {
        "required" : [ "pairingCode" ],
        "type" : "object",
        "properties" : {
          "pairingCode" : {
            "maxLength" : 8,
            "minLength" : 8,
            "pattern" : "^[A-Z0-9]{8}$",
            "type" : "string",
            "description" : "用户在社区生成的 8 位配对码（仅大写字母与数字，1 天内有效）"
          }
        }
      },
      "OpenApiPostIdVO" : {
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "description" : "新建或操作的资源帖子 ID",
            "format" : "int64"
          }
        },
        "description" : "返回数据"
      },
      "OpenApiPrivateMessageResultVO" : {
        "type" : "object",
        "properties" : {
          "messageId" : {
            "type" : "integer",
            "description" : "消息 ID",
            "format" : "int64"
          },
          "hasSensitiveWords" : {
            "type" : "boolean",
            "description" : "内容是否命中敏感词（命中时仍可能被拦截或转人工，按业务规则处理）"
          }
        },
        "description" : "返回数据"
      },
      "OpenApiProxyUserPointsAdjustParam" : {
        "required" : [ "amount", "direction", "reason" ],
        "type" : "object",
        "properties" : {
          "amount" : {
            "minimum" : 0.01,
            "exclusiveMinimum" : false,
            "type" : "number",
            "description" : "调整金额（始终为正，方向由 direction 决定）"
          },
          "reason" : {
            "maxLength" : 200,
            "minLength" : 0,
            "type" : "string",
            "description" : "调整原因（记录到调整流水）"
          },
          "direction" : {
            "pattern" : "^(ADD|DEDUCT)$",
            "type" : "string",
            "description" : "方向：ADD 增加 / DEDUCT 扣减",
            "enum" : [ "ADD", "DEDUCT" ]
          }
        },
        "description" : "代理用户积分调整参数"
      },
      "OpenApiProxyUserPointsAdjustVO" : {
        "type" : "object",
        "properties" : {
          "newBalance" : {
            "type" : "number",
            "description" : "调整后余额"
          },
          "recordId" : {
            "type" : "integer",
            "description" : "对应交易/流水 ID（wallet_account.lastTransactionId）",
            "format" : "int64"
          },
          "currencyCode" : {
            "type" : "string",
            "description" : "本次调整的币种代码（GOLD_COIN / POINTS）"
          }
        },
        "description" : "代理用户积分调整结果"
      },
      "OpenApiProxyUserPointsVO" : {
        "type" : "object",
        "properties" : {
          "balance" : {
            "type" : "number",
            "description" : "余额（含冻结）"
          },
          "frozenBalance" : {
            "type" : "number",
            "description" : "冻结金额"
          },
          "availableBalance" : {
            "type" : "number",
            "description" : "可用余额 = balance - frozenBalance"
          },
          "currencyCode" : {
            "type" : "string",
            "description" : "货币代码，本接口固定 POINTS"
          }
        },
        "description" : "代理用户积分余额"
      },
      "OpenApiProxyUserRegisterParam" : {
        "required" : [ "username" ],
        "type" : "object",
        "properties" : {
          "username" : {
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string",
            "description" : "面板侧展示用户名"
          },
          "phone" : {
            "pattern" : "^$|^1[3-9]\\d{9}$",
            "type" : "string",
            "description" : "手机号（可空）"
          },
          "email" : {
            "maxLength" : 128,
            "minLength" : 0,
            "type" : "string",
            "description" : "邮箱（可空）"
          },
          "loginName" : {
            "pattern" : "^$|^[A-Za-z][A-Za-z0-9_]{4,29}$",
            "type" : "string",
            "description" : "用户自选登录名(可空,面板一键绑定时由用户填写)"
          },
          "password" : {
            "maxLength" : 32,
            "minLength" : 0,
            "type" : "string",
            "description" : "用户自选密码(可空,面板一键绑定时由用户填写)"
          },
          "externalUserId" : {
            "maxLength" : 128,
            "minLength" : 0,
            "type" : "string",
            "description" : "第三方系统(调用方)用户唯一标识(可空,非空则写反向绑定)"
          },
          "externalUsername" : {
            "maxLength" : 128,
            "minLength" : 0,
            "type" : "string",
            "description" : "第三方用户名(展示/审计用,可空)"
          },
          "externalDisplayName" : {
            "maxLength" : 128,
            "minLength" : 0,
            "type" : "string",
            "description" : "第三方昵称(展示用,可空)"
          }
        },
        "description" : "代理用户注册参数"
      },
      "OpenApiProxyUserRegisterVO" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "string",
            "description" : "mzgf 侧用户 ID（字符串形式）"
          },
          "accessToken" : {
            "type" : "string",
            "description" : "24 小时代理访问令牌（首次颁发）"
          },
          "expiresInSeconds" : {
            "type" : "integer",
            "description" : "令牌有效期（秒）",
            "format" : "int64"
          },
          "loginName" : {
            "type" : "string",
            "description" : "登录名（若外部希望展示 mzgf 登录入口）"
          },
          "passwordAutoGenerated" : {
            "type" : "integer",
            "description" : "该账号的登录密码是否由系统随机生成（1=是，用户需走忘记密码重置后才能直接登录 mzgf）",
            "format" : "int32"
          },
          "plainPassword" : {
            "type" : "string",
            "description" : "一次性明文密码：仅注册瞬间随响应下发一次，DB 只保留 Argon2 哈希。外部面板应向用户展示后立即抛弃，切勿落库/日志；用户需登录 mzgf 后尽快修改。"
          }
        },
        "description" : "代理用户注册结果"
      },
      "OpenApiResourceBatchParam" : {
        "required" : [ "postIds" ],
        "type" : "object",
        "properties" : {
          "postIds" : {
            "maxItems" : 50,
            "minItems" : 0,
            "type" : "array",
            "description" : "资源帖子 ID 列表（1~50）",
            "items" : {
              "type" : "integer",
              "description" : "资源帖子 ID 列表（1~50）",
              "format" : "int64"
            }
          }
        }
      },
      "OpenApiServerPostLobbyManifestItemVo" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "description" : "行主键 (供联机小子按 id 记进度)",
            "format" : "int64"
          },
          "source" : {
            "type" : "string",
            "description" : "资源来源: COMMUNITY / BUILTIN"
          },
          "communityPostId" : {
            "type" : "integer",
            "description" : "社区资源帖 id",
            "format" : "int64"
          },
          "communityFileId" : {
            "type" : "integer",
            "description" : "社区资源文件 id",
            "format" : "int64"
          },
          "resourceType" : {
            "type" : "string",
            "description" : "资源类型"
          },
          "name" : {
            "type" : "string",
            "description" : "资源显示名"
          },
          "version" : {
            "type" : "string",
            "description" : "版本号"
          },
          "environmentSide" : {
            "type" : "string",
            "description" : "环境端: SERVER / CLIENT / BOTH (只会返回 CLIENT / BOTH)"
          },
          "clientInstallPath" : {
            "type" : "string",
            "description" : "客户端相对安装路径 (如 mods/xxx.jar)"
          },
          "sizeBytes" : {
            "type" : "integer",
            "description" : "文件字节数",
            "format" : "int64"
          },
          "sha256" : {
            "type" : "string",
            "description" : "sha256, 下载后校验"
          },
          "downloadUrl" : {
            "type" : "string",
            "description" : "下载 URL (COMMUNITY 时可空, 联机小子按 postId+fileId 走本站下载令牌)"
          },
          "downloadUrlExpiresAt" : {
            "type" : "string",
            "description" : "URL 过期时间",
            "format" : "date-time"
          },
          "extraJson" : {
            "type" : "string",
            "description" : "兜底元数据 JSON"
          }
        },
        "description" : "资源清单条目 (只包含 environmentSide ∈ {CLIENT, BOTH})"
      },
      "OpenApiServerPostLobbyManifestVo" : {
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "description" : "帖子 id",
            "format" : "int64"
          },
          "mainName" : {
            "type" : "string",
            "description" : "服务器名字"
          },
          "sectionCode" : {
            "type" : "string",
            "description" : "板块 code"
          },
          "serverIp" : {
            "type" : "string",
            "description" : "服务器 IP / 域名"
          },
          "serverPort" : {
            "type" : "integer",
            "description" : "服务器端口",
            "format" : "int32"
          },
          "serverPassword" : {
            "type" : "string",
            "description" : "联机加入密码 (无密码时为空)"
          },
          "serverVersion" : {
            "type" : "string",
            "description" : "服务器版本 (逗号或原始字符串)"
          },
          "queryType" : {
            "type" : "string",
            "description" : "查询协议"
          },
          "updatedAt" : {
            "type" : "string",
            "description" : "帖子最近一次同步时间 (updateTime)",
            "format" : "date-time"
          },
          "items" : {
            "type" : "array",
            "description" : "资源清单条目 (只包含 environmentSide ∈ {CLIENT, BOTH})",
            "items" : {
              "$ref" : "#/components/schemas/OpenApiServerPostLobbyManifestItemVo"
            }
          }
        },
        "description" : "返回数据"
      },
      "OpenApiServerPostLobbyReserveBatchVo" : {
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "description" : "帖子 id (回显)",
            "format" : "int64"
          },
          "results" : {
            "type" : "array",
            "description" : "占位结果列表, 顺序与请求 items 保持一致",
            "items" : {
              "$ref" : "#/components/schemas/OpenApiServerPostLobbyReserveItemVo"
            }
          }
        },
        "description" : "返回数据"
      },
      "OpenApiServerPostLobbyReserveItemVo" : {
        "type" : "object",
        "properties" : {
          "sha256" : {
            "type" : "string",
            "description" : "文件 sha256 (回显, 供客户端对齐)"
          },
          "status" : {
            "type" : "string",
            "description" : "结果状态: REUSE / NEED_UPLOAD / REJECTED"
          },
          "reservedResourceId" : {
            "type" : "integer",
            "description" : "已复用或占位的资源 id, REJECTED 时为 null",
            "format" : "int64"
          },
          "uploadToken" : {
            "type" : "string",
            "description" : "PENDING 行的一次性上传令牌, 仅 NEED_UPLOAD 有值"
          },
          "objectKey" : {
            "type" : "string",
            "description" : "CE 对象 key, REUSE 有值, NEED_UPLOAD upload 完成后回填"
          },
          "downloadUrl" : {
            "type" : "string",
            "description" : "预签名下载 URL, 仅 REUSE 有值; NEED_UPLOAD 需 upload 后再拉 manifest 时才带"
          },
          "rejectReason" : {
            "type" : "string",
            "description" : "REJECTED 时的拒绝原因"
          }
        },
        "description" : "占位结果列表, 顺序与请求 items 保持一致"
      },
      "OpenApiServerPostLobbyUploadResultVo" : {
        "type" : "object",
        "properties" : {
          "resourceId" : {
            "type" : "integer",
            "description" : "已落库的资源行 id",
            "format" : "int64",
            "example" : 10001
          },
          "objectKey" : {
            "type" : "string",
            "description" : "落库后的对象 key (user-upload/{userId}/{sha256Prefix}/{sha256})"
          },
          "sha256" : {
            "type" : "string",
            "description" : "实际存储的 sha256 (与入参 sha256 一致, 便于客户端断言)"
          },
          "downloadUrl" : {
            "type" : "string",
            "description" : "预签名下载 URL (可能为空, 空则调用方走 refresh-urls 兜底)"
          },
          "downloadUrlExpiresAt" : {
            "type" : "integer",
            "description" : "downloadUrl 到期毫秒时间戳 (null 表示未生成 URL)",
            "format" : "int64"
          }
        },
        "description" : "联机大厅用户自建资源上传结果"
      },
      "OpenApiServerStatusVo" : {
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "mainName" : {
            "type" : "string"
          },
          "queryEnabled" : {
            "type" : "boolean"
          },
          "queryType" : {
            "type" : "string"
          },
          "serverPort" : {
            "type" : "integer",
            "format" : "int32"
          },
          "currentPlayers" : {
            "type" : "integer",
            "format" : "int32"
          },
          "maxPlayers" : {
            "type" : "integer",
            "format" : "int32"
          },
          "serverStatus" : {
            "type" : "string"
          },
          "serverMotd" : {
            "type" : "string"
          },
          "latencyMs" : {
            "type" : "integer",
            "format" : "int32"
          },
          "lastHeartbeatTime" : {
            "type" : "string"
          }
        },
        "description" : "返回数据"
      },
      "OpenApiSsoTicketVO" : {
        "type" : "object",
        "properties" : {
          "ticket" : {
            "type" : "string",
            "description" : "一次性 SSO ticket(拼到站点 URL 的 ?sso_ticket= 参数)"
          },
          "expiresInSeconds" : {
            "type" : "integer",
            "description" : "有效期(秒),默认 300 = 5 分钟",
            "format" : "int64"
          }
        },
        "description" : "返回数据"
      },
      "OpenApiStatsBriefVO" : {
        "type" : "object",
        "properties" : {
          "viewsLast24h" : {
            "type" : "integer",
            "description" : "近 24 小时浏览数",
            "format" : "int64"
          },
          "viewsLast7d" : {
            "type" : "integer",
            "description" : "近 7 天浏览数",
            "format" : "int64"
          },
          "viewsLast30d" : {
            "type" : "integer",
            "description" : "近 30 天浏览数",
            "format" : "int64"
          },
          "downloadsLast24h" : {
            "type" : "integer",
            "description" : "近 24 小时下载数",
            "format" : "int64"
          },
          "downloadsLast7d" : {
            "type" : "integer",
            "description" : "近 7 天下载数",
            "format" : "int64"
          },
          "downloadsLast30d" : {
            "type" : "integer",
            "description" : "近 30 天下载数",
            "format" : "int64"
          },
          "collectsLast24h" : {
            "type" : "integer",
            "description" : "近 24 小时新增收藏数",
            "format" : "int64"
          },
          "collectsLast7d" : {
            "type" : "integer",
            "description" : "近 7 天新增收藏数",
            "format" : "int64"
          },
          "collectsLast30d" : {
            "type" : "integer",
            "description" : "近 30 天新增收藏数",
            "format" : "int64"
          }
        },
        "description" : "时间分段统计（近 24h/7d/30d 的浏览/下载/收藏，无数据时返回 0）"
      },
      "OpenApiUserBindingLinkParam" : {
        "required" : [ "externalUserId" ],
        "type" : "object",
        "properties" : {
          "externalUserId" : {
            "maxLength" : 128,
            "minLength" : 0,
            "type" : "string",
            "description" : "第三方系统(调用方 App)的用户唯一标识"
          },
          "externalUsername" : {
            "maxLength" : 128,
            "minLength" : 0,
            "type" : "string",
            "description" : "第三方用户名(展示/审计用,可空)"
          },
          "externalDisplayName" : {
            "maxLength" : 128,
            "minLength" : 0,
            "type" : "string",
            "description" : "第三方昵称(展示用,可空)"
          }
        },
        "description" : "第三方 App 用户绑定 link/unlink 参数"
      },
      "OpenApiUserBindingVO" : {
        "type" : "object",
        "properties" : {
          "bindingId" : {
            "type" : "integer",
            "description" : "绑定主键 ID",
            "format" : "int64"
          },
          "userId" : {
            "type" : "integer",
            "description" : "mzgf 内部 userId",
            "format" : "int64"
          },
          "appId" : {
            "type" : "integer",
            "description" : "绑定的 OpenAPI App ID",
            "format" : "int64"
          },
          "externalUserId" : {
            "type" : "string",
            "description" : "第三方系统用户唯一标识"
          },
          "externalUsername" : {
            "type" : "string",
            "description" : "第三方用户名"
          },
          "bindSource" : {
            "type" : "string",
            "description" : "绑定来源"
          },
          "status" : {
            "type" : "string",
            "description" : "状态:ACTIVE | UNBOUND"
          },
          "bindTime" : {
            "type" : "string",
            "description" : "绑定时间",
            "format" : "date-time"
          }
        },
        "description" : "第三方 App 用户绑定映射"
      },
      "OpenApiUserProfileVo" : {
        "type" : "object",
        "properties" : {
          "userId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "loginName" : {
            "type" : "string"
          },
          "avatar" : {
            "type" : "string"
          },
          "gender" : {
            "type" : "string"
          },
          "bio" : {
            "type" : "string"
          },
          "location" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string"
          },
          "registerTime" : {
            "type" : "string"
          }
        },
        "description" : "返回数据"
      },
      "PageResultCommentVO" : {
        "type" : "object",
        "properties" : {
          "pageNum" : {
            "type" : "integer",
            "description" : "当前页",
            "format" : "int64"
          },
          "pageSize" : {
            "type" : "integer",
            "description" : "每页的数量",
            "format" : "int64"
          },
          "total" : {
            "type" : "integer",
            "description" : "总记录数",
            "format" : "int64"
          },
          "pages" : {
            "type" : "integer",
            "description" : "总页数",
            "format" : "int64"
          },
          "list" : {
            "type" : "array",
            "description" : "结果集",
            "items" : {
              "$ref" : "#/components/schemas/CommentVO"
            }
          },
          "emptyFlag" : {
            "type" : "boolean",
            "description" : "是否为空"
          },
          "hasMore" : {
            "type" : "boolean",
            "description" : "是否还有更多数据（用于游标分页）"
          },
          "extData" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "扩展数据"
            },
            "description" : "扩展数据"
          }
        },
        "description" : "返回数据"
      },
      "PageResultCommunityAnswerVO" : {
        "type" : "object",
        "properties" : {
          "pageNum" : {
            "type" : "integer",
            "description" : "当前页",
            "format" : "int64"
          },
          "pageSize" : {
            "type" : "integer",
            "description" : "每页的数量",
            "format" : "int64"
          },
          "total" : {
            "type" : "integer",
            "description" : "总记录数",
            "format" : "int64"
          },
          "pages" : {
            "type" : "integer",
            "description" : "总页数",
            "format" : "int64"
          },
          "list" : {
            "type" : "array",
            "description" : "结果集",
            "items" : {
              "$ref" : "#/components/schemas/CommunityAnswerVO"
            }
          },
          "emptyFlag" : {
            "type" : "boolean",
            "description" : "是否为空"
          },
          "hasMore" : {
            "type" : "boolean",
            "description" : "是否还有更多数据（用于游标分页）"
          },
          "extData" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "扩展数据"
            },
            "description" : "扩展数据"
          }
        },
        "description" : "返回数据"
      },
      "PageResultCommunityFollowUserVO" : {
        "type" : "object",
        "properties" : {
          "pageNum" : {
            "type" : "integer",
            "description" : "当前页",
            "format" : "int64"
          },
          "pageSize" : {
            "type" : "integer",
            "description" : "每页的数量",
            "format" : "int64"
          },
          "total" : {
            "type" : "integer",
            "description" : "总记录数",
            "format" : "int64"
          },
          "pages" : {
            "type" : "integer",
            "description" : "总页数",
            "format" : "int64"
          },
          "list" : {
            "type" : "array",
            "description" : "结果集",
            "items" : {
              "$ref" : "#/components/schemas/CommunityFollowUserVO"
            }
          },
          "emptyFlag" : {
            "type" : "boolean",
            "description" : "是否为空"
          },
          "hasMore" : {
            "type" : "boolean",
            "description" : "是否还有更多数据（用于游标分页）"
          },
          "extData" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "扩展数据"
            },
            "description" : "扩展数据"
          }
        },
        "description" : "返回数据"
      },
      "PageResultCommunityMomentVO" : {
        "type" : "object",
        "properties" : {
          "pageNum" : {
            "type" : "integer",
            "description" : "当前页",
            "format" : "int64"
          },
          "pageSize" : {
            "type" : "integer",
            "description" : "每页的数量",
            "format" : "int64"
          },
          "total" : {
            "type" : "integer",
            "description" : "总记录数",
            "format" : "int64"
          },
          "pages" : {
            "type" : "integer",
            "description" : "总页数",
            "format" : "int64"
          },
          "list" : {
            "type" : "array",
            "description" : "结果集",
            "items" : {
              "$ref" : "#/components/schemas/CommunityMomentVO"
            }
          },
          "emptyFlag" : {
            "type" : "boolean",
            "description" : "是否为空"
          },
          "hasMore" : {
            "type" : "boolean",
            "description" : "是否还有更多数据（用于游标分页）"
          },
          "extData" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "扩展数据"
            },
            "description" : "扩展数据"
          }
        },
        "description" : "返回数据"
      },
      "PageResultCommunityPostSummaryVO" : {
        "type" : "object",
        "properties" : {
          "pageNum" : {
            "type" : "integer",
            "description" : "当前页",
            "format" : "int64"
          },
          "pageSize" : {
            "type" : "integer",
            "description" : "每页的数量",
            "format" : "int64"
          },
          "total" : {
            "type" : "integer",
            "description" : "总记录数",
            "format" : "int64"
          },
          "pages" : {
            "type" : "integer",
            "description" : "总页数",
            "format" : "int64"
          },
          "list" : {
            "type" : "array",
            "description" : "结果集",
            "items" : {
              "$ref" : "#/components/schemas/CommunityPostSummaryVO"
            }
          },
          "emptyFlag" : {
            "type" : "boolean",
            "description" : "是否为空"
          },
          "hasMore" : {
            "type" : "boolean",
            "description" : "是否还有更多数据（用于游标分页）"
          },
          "extData" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "扩展数据"
            },
            "description" : "扩展数据"
          }
        },
        "description" : "返回数据"
      },
      "PageResultCommunityQuestionVO" : {
        "type" : "object",
        "properties" : {
          "pageNum" : {
            "type" : "integer",
            "description" : "当前页",
            "format" : "int64"
          },
          "pageSize" : {
            "type" : "integer",
            "description" : "每页的数量",
            "format" : "int64"
          },
          "total" : {
            "type" : "integer",
            "description" : "总记录数",
            "format" : "int64"
          },
          "pages" : {
            "type" : "integer",
            "description" : "总页数",
            "format" : "int64"
          },
          "list" : {
            "type" : "array",
            "description" : "结果集",
            "items" : {
              "$ref" : "#/components/schemas/CommunityQuestionVO"
            }
          },
          "emptyFlag" : {
            "type" : "boolean",
            "description" : "是否为空"
          },
          "hasMore" : {
            "type" : "boolean",
            "description" : "是否还有更多数据（用于游标分页）"
          },
          "extData" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "扩展数据"
            },
            "description" : "扩展数据"
          }
        },
        "description" : "返回数据"
      },
      "PageResultLuceneSearchResultVo" : {
        "type" : "object",
        "properties" : {
          "pageNum" : {
            "type" : "integer",
            "description" : "当前页",
            "format" : "int64"
          },
          "pageSize" : {
            "type" : "integer",
            "description" : "每页的数量",
            "format" : "int64"
          },
          "total" : {
            "type" : "integer",
            "description" : "总记录数",
            "format" : "int64"
          },
          "pages" : {
            "type" : "integer",
            "description" : "总页数",
            "format" : "int64"
          },
          "list" : {
            "type" : "array",
            "description" : "结果集",
            "items" : {
              "$ref" : "#/components/schemas/LuceneSearchResultVo"
            }
          },
          "emptyFlag" : {
            "type" : "boolean",
            "description" : "是否为空"
          },
          "hasMore" : {
            "type" : "boolean",
            "description" : "是否还有更多数据（用于游标分页）"
          },
          "extData" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "扩展数据"
            },
            "description" : "扩展数据"
          }
        },
        "description" : "返回数据"
      },
      "PageResultMapStringObject" : {
        "type" : "object",
        "properties" : {
          "pageNum" : {
            "type" : "integer",
            "description" : "当前页",
            "format" : "int64"
          },
          "pageSize" : {
            "type" : "integer",
            "description" : "每页的数量",
            "format" : "int64"
          },
          "total" : {
            "type" : "integer",
            "description" : "总记录数",
            "format" : "int64"
          },
          "pages" : {
            "type" : "integer",
            "description" : "总页数",
            "format" : "int64"
          },
          "list" : {
            "type" : "array",
            "description" : "结果集",
            "items" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "object",
                "description" : "结果集"
              },
              "description" : "结果集"
            }
          },
          "emptyFlag" : {
            "type" : "boolean",
            "description" : "是否为空"
          },
          "hasMore" : {
            "type" : "boolean",
            "description" : "是否还有更多数据（用于游标分页）"
          },
          "extData" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "扩展数据"
            },
            "description" : "扩展数据"
          }
        },
        "description" : "返回数据"
      },
      "PageResultMessageVO" : {
        "type" : "object",
        "properties" : {
          "pageNum" : {
            "type" : "integer",
            "description" : "当前页",
            "format" : "int64"
          },
          "pageSize" : {
            "type" : "integer",
            "description" : "每页的数量",
            "format" : "int64"
          },
          "total" : {
            "type" : "integer",
            "description" : "总记录数",
            "format" : "int64"
          },
          "pages" : {
            "type" : "integer",
            "description" : "总页数",
            "format" : "int64"
          },
          "list" : {
            "type" : "array",
            "description" : "结果集",
            "items" : {
              "$ref" : "#/components/schemas/MessageVO"
            }
          },
          "emptyFlag" : {
            "type" : "boolean",
            "description" : "是否为空"
          },
          "hasMore" : {
            "type" : "boolean",
            "description" : "是否还有更多数据（用于游标分页）"
          },
          "extData" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "扩展数据"
            },
            "description" : "扩展数据"
          }
        },
        "description" : "返回数据"
      },
      "PageResultModSummaryVO" : {
        "type" : "object",
        "properties" : {
          "pageNum" : {
            "type" : "integer",
            "description" : "当前页",
            "format" : "int64"
          },
          "pageSize" : {
            "type" : "integer",
            "description" : "每页的数量",
            "format" : "int64"
          },
          "total" : {
            "type" : "integer",
            "description" : "总记录数",
            "format" : "int64"
          },
          "pages" : {
            "type" : "integer",
            "description" : "总页数",
            "format" : "int64"
          },
          "list" : {
            "type" : "array",
            "description" : "结果集",
            "items" : {
              "$ref" : "#/components/schemas/ModSummaryVO"
            }
          },
          "emptyFlag" : {
            "type" : "boolean",
            "description" : "是否为空"
          },
          "hasMore" : {
            "type" : "boolean",
            "description" : "是否还有更多数据（用于游标分页）"
          },
          "extData" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "扩展数据"
            },
            "description" : "扩展数据"
          }
        },
        "description" : "返回数据"
      },
      "PostAction" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "params" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          }
        }
      },
      "PreCheck" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string"
          },
          "condition" : {
            "type" : "string"
          },
          "failMessage" : {
            "type" : "string"
          }
        }
      },
      "RatingAggregateVO" : {
        "type" : "object",
        "properties" : {
          "averageScore" : {
            "type" : "number",
            "description" : "平均评分（0~5，保留两位小数；无评分时返回 0）",
            "format" : "double"
          },
          "totalCount" : {
            "type" : "integer",
            "description" : "评分总人数",
            "format" : "int64"
          },
          "starDistribution" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "integer",
              "description" : "星级分布（key 为 1~5，value 为该星级评分人数；缺失的星级返回 0）",
              "format" : "int64"
            },
            "description" : "星级分布（key 为 1~5，value 为该星级评分人数；缺失的星级返回 0）"
          }
        },
        "description" : "返回数据"
      },
      "RelationVO" : {
        "type" : "object",
        "properties" : {
          "relationType" : {
            "type" : "string",
            "description" : "关系类型（DEPENDENCY / INCOMPATIBLE / RECOMMENDATION / EMBEDDED 等，详见 resource_post_relation.relation_type）"
          },
          "targetPostId" : {
            "type" : "integer",
            "description" : "目标资源帖子 ID",
            "format" : "int64"
          },
          "target" : {
            "$ref" : "#/components/schemas/ModSummaryVO"
          },
          "isRequired" : {
            "type" : "boolean",
            "description" : "是否强制依赖（仅 relationType=DEPENDENCY 时有意义，true 表示缺失则无法运行）"
          },
          "sortOrder" : {
            "type" : "integer",
            "description" : "排序值（同 relationType 下越小越靠前）",
            "format" : "int32"
          },
          "dataSource" : {
            "type" : "string",
            "description" : "数据来源（USER_DEFINED / UPSTREAM_SYNC / AUTO_DETECTED）"
          }
        },
        "description" : "返回数据"
      },
      "ResourceRelationItemParam" : {
        "required" : [ "postId" ],
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "required" : {
            "type" : "boolean"
          }
        }
      },
      "ResourceRelationParam" : {
        "type" : "object",
        "properties" : {
          "dependencies" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ResourceRelationItemParam"
            }
          },
          "incompatible" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ResourceRelationItemParam"
            }
          },
          "recommendations" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ResourceRelationItemParam"
            }
          }
        },
        "description" : "资源关系（依赖/不兼容/推荐搭配）"
      },
      "ResourceStatsDetailVO" : {
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "description" : "资源帖子 ID",
            "format" : "int64"
          },
          "totalViews" : {
            "type" : "integer",
            "description" : "累计浏览数",
            "format" : "int64"
          },
          "totalDownloads" : {
            "type" : "integer",
            "description" : "累计下载次数",
            "format" : "int64"
          },
          "totalLikes" : {
            "type" : "integer",
            "description" : "累计点赞数",
            "format" : "int64"
          },
          "totalCollects" : {
            "type" : "integer",
            "description" : "累计收藏数",
            "format" : "int64"
          },
          "totalComments" : {
            "type" : "integer",
            "description" : "累计评论数",
            "format" : "int64"
          },
          "averageRating" : {
            "type" : "number",
            "description" : "平均评分（0~5）；无评分时返回 0",
            "format" : "double"
          }
        },
        "description" : "返回数据"
      },
      "ResourceSyncVO" : {
        "type" : "object",
        "properties" : {
          "nextCursor" : {
            "type" : "string",
            "description" : "下次同步使用的 cursor（取本批次最新 updateTime 的时间戳）；hasMore=false 时仍需保留供下次请求使用"
          },
          "hasMore" : {
            "type" : "boolean",
            "description" : "是否还有未拉取的数据（true 表示客户端应立即用 nextCursor 再请求一次）"
          },
          "items" : {
            "type" : "array",
            "description" : "本次同步返回的资源帖子列表（按 updateTime 升序）",
            "items" : {
              "$ref" : "#/components/schemas/ModSummaryVO"
            }
          },
          "deletedPostIds" : {
            "type" : "array",
            "description" : "自上次 cursor 以来被软删除的资源帖子 ID 列表（客户端镜像站应同步删除本地缓存）",
            "items" : {
              "type" : "integer",
              "description" : "自上次 cursor 以来被软删除的资源帖子 ID 列表（客户端镜像站应同步删除本地缓存）",
              "format" : "int64"
            }
          }
        },
        "description" : "返回数据"
      },
      "ResponseDTOBoolean" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "boolean",
            "description" : "返回数据"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOCommunityMomentVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/CommunityMomentVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOCommunityPostDetailVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/CommunityPostDetailVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOCommunityQuestionVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/CommunityQuestionVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOCommunityUserProfileVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/CommunityUserProfileVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTODownloadAuthVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/DownloadAuthVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOFileDetailVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/FileDetailVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOFileDownloadUrlVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/FileDownloadUrlVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOInstallConfigVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/InstallConfigVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOInstallLaunchVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/InstallLaunchVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOInteger" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "integer",
            "description" : "返回数据",
            "format" : "int32"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOListAuthorBriefVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "array",
            "description" : "返回数据",
            "items" : {
              "$ref" : "#/components/schemas/AuthorBriefVO"
            }
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOListCategoryNodeVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "array",
            "description" : "返回数据",
            "items" : {
              "$ref" : "#/components/schemas/CategoryNodeVO"
            }
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOListFileSummaryVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "array",
            "description" : "返回数据",
            "items" : {
              "$ref" : "#/components/schemas/FileSummaryVO"
            }
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOListMapStringObject" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "array",
            "description" : "返回数据",
            "items" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "object",
                "description" : "返回数据"
              },
              "description" : "返回数据"
            }
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOListModSummaryVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "array",
            "description" : "返回数据",
            "items" : {
              "$ref" : "#/components/schemas/ModSummaryVO"
            }
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOListRelationVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "array",
            "description" : "返回数据",
            "items" : {
              "$ref" : "#/components/schemas/RelationVO"
            }
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOListRunPlatformVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "array",
            "description" : "返回数据",
            "items" : {
              "$ref" : "#/components/schemas/RunPlatformVO"
            }
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOListSectionVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "array",
            "description" : "返回数据",
            "items" : {
              "$ref" : "#/components/schemas/SectionVO"
            }
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOListString" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "array",
            "description" : "返回数据",
            "items" : {
              "type" : "string",
              "description" : "返回数据"
            }
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOListUserFeedbackResolvedItemVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "array",
            "description" : "返回数据",
            "items" : {
              "$ref" : "#/components/schemas/UserFeedbackResolvedItemVO"
            }
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOListVersionVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "array",
            "description" : "返回数据",
            "items" : {
              "$ref" : "#/components/schemas/VersionVO"
            }
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOLong" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "integer",
            "description" : "返回数据",
            "format" : "int64"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOMapStringObject" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object",
              "description" : "返回数据"
            },
            "description" : "返回数据"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOMcStartupCommandVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/McStartupCommandVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOModDescriptionVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/ModDescriptionVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOModDetailVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/ModDetailVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiAccessTokenVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiAccessTokenVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiForumStatsVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiForumStatsVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiInstallInfoVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiInstallInfoVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiPostIdVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiPostIdVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiPrivateMessageResultVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiPrivateMessageResultVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiProxyUserPointsAdjustVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiProxyUserPointsAdjustVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiProxyUserPointsVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiProxyUserPointsVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiProxyUserRegisterVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiProxyUserRegisterVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiServerPostLobbyManifestVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiServerPostLobbyManifestVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiServerPostLobbyReserveBatchVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiServerPostLobbyReserveBatchVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiServerPostLobbyUploadResultVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiServerPostLobbyUploadResultVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiServerStatusVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiServerStatusVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiSsoTicketVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiSsoTicketVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiUserBindingVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiUserBindingVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOOpenApiUserProfileVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/OpenApiUserProfileVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOPageResultCommentVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageResultCommentVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOPageResultCommunityAnswerVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageResultCommunityAnswerVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOPageResultCommunityFollowUserVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageResultCommunityFollowUserVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOPageResultCommunityMomentVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageResultCommunityMomentVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOPageResultCommunityPostSummaryVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageResultCommunityPostSummaryVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOPageResultCommunityQuestionVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageResultCommunityQuestionVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOPageResultLuceneSearchResultVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageResultLuceneSearchResultVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOPageResultMapStringObject" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageResultMapStringObject"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOPageResultMessageVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageResultMessageVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOPageResultModSummaryVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/PageResultModSummaryVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTORatingAggregateVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/RatingAggregateVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOResourceStatsDetailVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/ResourceStatsDetailVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOResourceSyncVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/ResourceSyncVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTORunPlatformVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/RunPlatformVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOSectionFilterOptionsVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/SectionFilterOptionsVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOSectionStatsVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/SectionStatsVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOSectionVO" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/SectionVO"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOServerProviderActivityCollectResultVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/ServerProviderActivityCollectResultVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOServerProviderCarouselResultVo" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "$ref" : "#/components/schemas/ServerProviderCarouselResultVo"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "ResponseDTOVoid" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "description" : "返回码",
            "format" : "int32"
          },
          "level" : {
            "type" : "string",
            "description" : "级别"
          },
          "msg" : {
            "type" : "string",
            "description" : "返回消息"
          },
          "ok" : {
            "type" : "boolean",
            "description" : "是否成功"
          },
          "data" : {
            "type" : "object",
            "description" : "返回数据"
          },
          "dataType" : {
            "type" : "integer",
            "format" : "int32"
          },
          "traceId" : {
            "type" : "string",
            "description" : "追踪ID，用于日志串联"
          }
        }
      },
      "RunPlatformVO" : {
        "type" : "object",
        "properties" : {
          "infoId" : {
            "type" : "integer",
            "description" : "运行平台数据库 ID",
            "format" : "int64"
          },
          "code" : {
            "type" : "string",
            "description" : "运行平台 code（业务主键，URL 路径中使用）"
          },
          "name" : {
            "type" : "string",
            "description" : "运行平台名称"
          },
          "description" : {
            "type" : "string",
            "description" : "描述"
          },
          "iconUrl" : {
            "type" : "string",
            "description" : "图标 URL（已经过 buildDisplayUrl 处理）"
          },
          "enable" : {
            "type" : "boolean",
            "description" : "是否启用"
          }
        },
        "description" : "返回数据"
      },
      "SectionFilterOptionsVO" : {
        "type" : "object",
        "properties" : {
          "resourceTypes" : {
            "type" : "array",
            "description" : "资源类型列表（一级父分类，section_ext_info.type=RESOURCE_TYPE）",
            "items" : {
              "$ref" : "#/components/schemas/FilterOptionVO"
            }
          },
          "mainCategories" : {
            "type" : "array",
            "description" : "主要类别列表（二级子分类，parentCode 指向 resourceTypes.code）",
            "items" : {
              "$ref" : "#/components/schemas/FilterOptionVO"
            }
          },
          "runPlatforms" : {
            "type" : "array",
            "description" : "运行平台列表（section_ext_info.type=PLATFORM）",
            "items" : {
              "$ref" : "#/components/schemas/FilterOptionVO"
            }
          }
        },
        "description" : "板块维度资源筛选选项"
      },
      "SectionStatsVO" : {
        "type" : "object",
        "properties" : {
          "sectionCode" : {
            "type" : "string",
            "description" : "板块 code（与请求参数一致）"
          },
          "postCount" : {
            "type" : "integer",
            "description" : "板块下对外公开资源帖总数",
            "format" : "int64"
          },
          "totalViews" : {
            "type" : "integer",
            "description" : "板块下累计浏览总数",
            "format" : "int64"
          },
          "totalDownloads" : {
            "type" : "integer",
            "description" : "板块下累计下载总次数",
            "format" : "int64"
          },
          "totalLikes" : {
            "type" : "integer",
            "description" : "板块下累计点赞总数",
            "format" : "int64"
          },
          "totalCollects" : {
            "type" : "integer",
            "description" : "板块下累计收藏总数",
            "format" : "int64"
          }
        },
        "description" : "返回数据"
      },
      "SectionVO" : {
        "type" : "object",
        "properties" : {
          "sectionId" : {
            "type" : "integer",
            "description" : "板块数据库 ID",
            "format" : "int64"
          },
          "sectionCode" : {
            "type" : "string",
            "description" : "板块代码（业务主键，URL 路径中使用）"
          },
          "description" : {
            "type" : "string",
            "description" : "板块中文名"
          },
          "englishName" : {
            "type" : "string",
            "description" : "英文名"
          },
          "parentCode" : {
            "type" : "string",
            "description" : "父板块 code（顶级板块为 null）"
          },
          "iconUrl" : {
            "type" : "string",
            "description" : "板块图标 URL（已经过 buildDisplayUrl 处理）"
          },
          "sortOrder" : {
            "type" : "integer",
            "description" : "排序值（越小越靠前）",
            "format" : "int32"
          },
          "enable" : {
            "type" : "boolean",
            "description" : "是否启用"
          },
          "serverPostEnabled" : {
            "type" : "boolean",
            "description" : "是否允许发服务器帖子"
          },
          "resourcePostEnabled" : {
            "type" : "boolean",
            "description" : "是否允许发资源帖子"
          },
          "resourcePostCount" : {
            "type" : "integer",
            "description" : "该板块下资源帖子总数（仅 enable=true 且未删除）",
            "format" : "int64"
          }
        },
        "description" : "返回数据"
      },
      "ServerPackLayout" : {
        "type" : "object",
        "properties" : {
          "version" : {
            "type" : "integer",
            "format" : "int32"
          },
          "status" : {
            "type" : "string"
          },
          "rootPath" : {
            "type" : "string"
          },
          "stripComponents" : {
            "type" : "integer",
            "format" : "int32"
          },
          "fileCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "uncompressedSize" : {
            "type" : "integer",
            "format" : "int64"
          },
          "sizesVerified" : {
            "type" : "boolean"
          },
          "hasLibrariesJar" : {
            "type" : "boolean"
          },
          "hasModsJar" : {
            "type" : "boolean"
          }
        },
        "description" : "服务端目录判定：ROOT/WRAPPED/PENDING/UNKNOWN/AMBIGUOUS；rootPath 为解压后应提升到安装根的相对目录"
      },
      "ServerProviderActivityCollectParam" : {
        "required" : [ "amount" ],
        "type" : "object",
        "properties" : {
          "amount" : {
            "minimum" : 1,
            "type" : "integer",
            "description" : "转入的积分数量（扣被代理用户钱包 POINTS）",
            "format" : "int64"
          },
          "orderNo" : {
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string",
            "description" : "外部业务单号（作幂等键，相同单号重复调用不重复扣款；缺省则每次独立）"
          },
          "remark" : {
            "maxLength" : 500,
            "minLength" : 0,
            "type" : "string",
            "description" : "备注"
          }
        },
        "description" : "服务商活动积分转入请求参数"
      },
      "ServerProviderActivityCollectResultVo" : {
        "type" : "object",
        "properties" : {
          "providerId" : {
            "type" : "integer",
            "description" : "服务商档案ID",
            "format" : "int64"
          },
          "activityBalance" : {
            "type" : "number",
            "description" : "转入后活动积分账户余额"
          },
          "transactionId" : {
            "type" : "integer",
            "description" : "钱包扣款交易ID",
            "format" : "int64"
          }
        },
        "description" : "服务商活动积分转入结果"
      },
      "ServerProviderCarouselResultVo" : {
        "type" : "object",
        "properties" : {
          "carouselId" : {
            "type" : "integer",
            "description" : "生成的轮播图ID",
            "format" : "int64"
          },
          "startTime" : {
            "type" : "string",
            "description" : "展示开始时间"
          },
          "endTime" : {
            "type" : "string",
            "description" : "展示结束时间"
          },
          "activityBalanceAfter" : {
            "type" : "number",
            "description" : "扣费后活动积分账户余额"
          }
        },
        "description" : "服务商自助投放轮播结果"
      },
      "UserFeedbackReportParam" : {
        "required" : [ "notUsefulCount", "reportType", "usefulCount" ],
        "type" : "object",
        "properties" : {
          "reportType" : {
            "maxLength" : 32,
            "minLength" : 0,
            "type" : "string",
            "description" : "严重程度: RANK_DOWN (排序下沉阈值) / HIDE (隐藏阈值)"
          },
          "usefulCount" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "上报时该 app 侧累计 USEFUL 票数快照 (>=0)",
            "format" : "int32"
          },
          "notUsefulCount" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "上报时该 app 侧累计 NOT_USEFUL 票数快照 (>=0)",
            "format" : "int32"
          },
          "shortTermBadCount" : {
            "minimum" : 0,
            "type" : "integer",
            "description" : "上报时短期窗口 NOT_USEFUL 票数快照 (>=0)",
            "format" : "int32"
          },
          "resourceVersion" : {
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string",
            "description" : "上报时资源版本快照 (resource_post.resource_version), 用于新版本自动清零判定"
          },
          "detail" : {
            "maxLength" : 1000,
            "minLength" : 0,
            "type" : "string",
            "description" : "客户端上报的补充说明 (可为空, 超 1000 自动截断)"
          }
        },
        "description" : "消费端\"是否有用\"隐形投票阈值上报参数"
      },
      "UserFeedbackResolvedItemVO" : {
        "type" : "object",
        "properties" : {
          "postId" : {
            "type" : "integer",
            "description" : "资源帖 ID",
            "format" : "int64"
          },
          "resolvedAt" : {
            "type" : "string",
            "description" : "被 mzgf 侧标记为已解决的时间 (作为下次轮询 cursor)",
            "format" : "date-time"
          }
        },
        "description" : "\"是否有用\"投票已修复明细"
      },
      "VersionVO" : {
        "type" : "object",
        "properties" : {
          "versionId" : {
            "type" : "integer",
            "description" : "版本快照数据库 ID",
            "format" : "int64"
          },
          "postId" : {
            "type" : "integer",
            "description" : "所属资源帖子 ID",
            "format" : "int64"
          },
          "versionNumber" : {
            "type" : "integer",
            "description" : "版本序号（递增整数，与 resource_post.post_version 对应）",
            "format" : "int32"
          },
          "resourceVersion" : {
            "type" : "string",
            "description" : "资源业务版本号（语义版本，如 1.2.3）"
          },
          "updateCommit" : {
            "type" : "string",
            "description" : "更新说明（用户在发布版本时填写的 commit message）"
          },
          "isBaseline" : {
            "type" : "boolean",
            "description" : "是否为基线版本（首次发布）"
          },
          "approvalStatus" : {
            "type" : "string",
            "description" : "审批状态（WAIT / APPROVED / REJECTED）"
          },
          "publishTime" : {
            "type" : "string",
            "description" : "发布时间（yyyy-MM-dd HH:mm:ss）"
          },
          "files" : {
            "type" : "array",
            "description" : "该版本下的文件列表（轻量视图，详情请走文件接口）",
            "items" : {
              "$ref" : "#/components/schemas/FileSummaryVO"
            }
          }
        },
        "description" : "返回数据"
      }
    },
    "securitySchemes" : {
      "ApiKeyAuth" : {
        "type" : "apiKey",
        "description" : "应用 API Key，32 位字符串",
        "name" : "X-API-Key",
        "in" : "header"
      },
      "ProxyAccessToken" : {
        "type" : "apiKey",
        "description" : "写接口必填：通过 OAuth 颁发的代理用户访问令牌，有效期 24 小时",
        "name" : "X-Proxy-Access-Token",
        "in" : "header"
      },
      "ProxyUserId" : {
        "type" : "apiKey",
        "description" : "代理用户 ID，用于需要 user:proxy 权限的读接口",
        "name" : "X-Proxy-User-Id",
        "in" : "header"
      }
    }
  }
}