根据项目输入 JSON 生成 MySQL 数据库设计 JSON，只返回 JSON，不要 Markdown 围栏或解释。
Confirmed app blueprint JSON and Confirmed business loop plan JSON are supplied in the input.
Database generation constraints from the business loop plan must be enforced.
Every confirmedBusinessLoopPlan.metrics tableName, field, and filters.field must exist in the generated schema. Numeric sum/avg/min/max metric fields must use a compatible numeric column type. Status-filter metric values must remain compatible with the matching stateMachines.states.
If input.mode is correction, repair input.originalResponse according to input.validationError and return the complete corrected database JSON. Do not drop unrelated valid tables or fields.
输出结构：{"tables":[{"tableName":"car_info","tableComment":"车辆信息表","adminMenuName":"车辆管理","operations":{"add":true,"edit":true,"remove":true,"removeType":"physical","reason":""},"columns":[{"columnName":"id","columnLabel":"ID","columnComment":"主键ID","columnType":"bigint(20)","isPk":"1","isIncrement":"1","isRequired":"1"}]}]}。
不要使用 field_1 等占位字段；每个表必须包含非空 columns，以及 adminMenuName 和 operations.add/edit/remove/removeType/reason。
adminMenuName 必须来自本表 tableComment/tableName，不得复用其他表或宽泛模块名称。
adminMenuName must come from that table's own tableComment or tableName.
字段数组名称只能是 columns，不能使用 fields、fieldDesign、fieldList、columnList。
Every table must include a non-empty columns array; use columns exactly.
每个字段必须包含 columnName、columnLabel、columnComment、columnType、isPk、isIncrement、isRequired。columnLabel 是短 UI 标签，columnComment 是完整数据库说明。
可提供 javaType、htmlType；htmlType 只能是 input、textarea、select、radio、checkbox、datetime、imageUpload、fileUpload、editor。
select/radio/checkbox 应提供 dictType 和 dictOptions。关联选择使用 remote:target_table:value_field:label_field，且目标表和值/标签字段必须都存在于本次 tables JSON。
非主键外键字段应在目标表存在时使用 remote select；无目标表的分类、类型、状态使用本地 dictOptions 或普通输入。
普通主数据表除唯一主键外至少包含 4 个业务字段。
订单、支付、借还、审批、流程、任务、库存记录等动作记录表使用仅新增；关系、审计、日志、历史表使用只读；普通主数据表使用完整 CRUD。
不要生成 businessActions、业务动作、工作流、代码、菜单表、user_role、角色权限表或权限表。
Do not generate menu tables, user_role tables, role-permission tables, or permission tables.
表名字段名只使用小写字母、数字、下划线；每表必须且只能有一个主键。字段类型只能使用 bigint(20)、int(11)、varchar(n)、char(n)、decimal(p,s)、datetime、date、text、longtext。
为 confirmedAppBlueprint.roles 中每个角色创建独立账号表：admin 使用 admin，其他角色使用 role.code。不得使用共享用户表或 role_id/role_code/user_role。
角色账号表包含 `<role_code>_id` 自增主键、username、password_hash、nickname、status、create_time。admin 只能登录后台，非 admin 角色登录前台。
生成 frontendPages.tableName 引用的全部表；个人资料页必须绑定对应非 admin 角色账号表。requiresLogin=true 且 dataScope=CURRENT_USER 的业务数据通常包含 user_id。
canonicalTableRegistry 中的名称是最终规范表名。confirmedBusinessLoopPlan 若出现与其指向同一业务对象的同义表名，必须使用 canonicalTableRegistry 中的名称，不得同时生成两张同义表。
根据 confirmedBusinessLoopPlan 创建 coreObjects.tableName、actions.ownerTable；补齐 stateMachines.statusField、quantityRules.quantityField 以及 recordRules 和动作前置条件需要的字段。状态值不得超出 stateMachines.states。
严格实现 confirmedBusinessLoopPlan.businessPolicies：TIME_LIMIT 的 startField、dueField 使用 datetime；OVERDUE_FEE 的 dueField 使用 datetime、daysTargetField 使用 int(11)、targetField 使用 decimal(10,2)；QUANTITY_LIMIT 的 targetField 使用 int(11) 且默认值为 0。所有政策字段必须位于政策指定的 tableName，禁止只把期限或公式写进 columnComment 而不创建字段。
Do not invent status values outside stateMachines.states.
严格遵守 input.limits.maxTables 和 maxColumnsPerTable。
项目输入 JSON：
{{input}}
