{ "tblname": "pbl_game_definition", "alias": "pbl_game_definition_list", "_comment": "M3b 整改(QC #13):主键/外键类字段在 models/pbl_game_definition.json 中为 str(32),CRUD 渲染类型必须为 text(原 number 会按数字输入框渲染 32 位字符串主键,排序/校验错位);同时补齐 M3b 规则导出四字段 rules_json/rules_hash/rule_count/rules_manifest 与 compile_status/error_message,移除模型中不存在的幽灵字段。", "params": { "browserfields": { "id": { "label": "ID", "list": true, "type": "text" }, "tenant_id": { "label": "租户ID", "list": true, "type": "text" }, "blueprint_id": { "label": "来源蓝图", "type": "text", "list": true }, "blueprint_version_no": { "label": "蓝图版本", "type": "number", "list": true }, "compiler_version_id": { "label": "编译版本", "type": "text", "list": true }, "content_fingerprint": { "label": "SHA-256 指纹", "type": "text", "list": true }, "rules_hash": { "label": "规则集合指纹", "type": "text", "list": true }, "rule_count": { "label": "规则条数", "type": "number", "list": true }, "compile_status": { "label": "编译结果状态", "type": "select", "list": true }, "quality_state": { "label": "编译时质量状态", "type": "select", "list": true }, "world_id": { "label": "落库 world", "type": "text", "list": true }, "scene_id": { "label": "落库 scene", "type": "text", "list": true }, "duration_ms": { "label": "耗时", "type": "number", "list": true }, "definition_json": { "label": "Game Definition 正文", "type": "text", "list": false }, "rules_json": { "label": "规则映射产物(script_type=1)", "type": "text", "list": false }, "rules_manifest": { "label": "规则溯源清单", "type": "text", "list": false }, "error_message": { "label": "失败原因", "type": "text", "list": false }, "created_at": { "label": "创建时间", "type": "text", "list": true } }, "editable": { "get_data_url": "{{entire_url('/pbl_compiler/api/pbl_game_definition_get.dspy')}}" }, "_crud_note": "pbl_game_definition 是编译产物表(只读):正文与规则四件套由 pbl_compiler_compile 主流程经 gd_artifact_writer/gd_rules_writer 唯一写入口落库,刻意不提供 new_data_url/update_data_url/delete_data_url,避免手工增删改绕过 29.6 确定性指纹与 rules_hash 收口。QC #3 整改:params.editable 原被挪用为编辑字段 label/type 映射(非法结构),现改为规范要求的只读 editable 对象;同时删除根级冗余 browserfields(规范只允许 params.browserfields),alias 由 pbl_compiler(与模块同名、会与模块 wwwroot 冲突)改为 pbl_game_definition_list。", "order_by": "id DESC", "page_size": 20 } }