{"avatarId":"mika_formal_vrm","runtime":"vrm","status":"model-not-yet-built","promotionReady":false,"blockingReasons":["formal-vrm-model-not-yet-built"],"requiredInputs":[{"id":"model","label":"正式 VRM 模型","requiredPath":"mika-formal.vrm","validator":"tools/vrm/validate_formal_vrm_delivery.py","emptyFileBlocked":true,"releaseBlocking":true},{"id":"deliveryManifest","label":"交付 manifest","requiredPath":"DELIVERY_MANIFEST.json","validator":"tools/vrm/validate_formal_vrm_delivery.py","requiredFields":["schemaVersion","avatarId","runtime","modelFilename"],"releaseBlocking":true},{"id":"sourceProject","label":"原始工程檔","requiredPath":".vroid/.blend/.fbx/.pmx","validator":"tools/vrm/validate_formal_vrm_delivery.py","emptyFileBlocked":true,"releaseBlocking":true},{"id":"modelProductionRequest","label":"模型本體製作請求","requiredPath":"MODEL_PRODUCTION_REQUEST.md","validator":"tools/vrm/validate_formal_vrm_delivery.py","requiredFragments":["mika-formal.vrm","不可把舊版測試 3D 角色改名","intake_formal_vrm_candidate.py"],"releaseBlocking":true},{"id":"license","label":"授權紀錄","requiredPath":"LICENSE.md or mika-formal-vrm-license.md","validator":"tools/vrm/validate_formal_vrm_delivery.py","templateMarkersBlocked":true,"releaseBlocking":true},{"id":"textureSources","label":"貼圖來源紀錄","requiredPath":"TEXTURE_SOURCES.md or texture/material README","validator":"tools/vrm/validate_formal_vrm_delivery.py","templateMarkersBlocked":true,"releaseBlocking":true},{"id":"expressionMap","label":"嘴型與表情對照表","requiredPath":"expression-map.json","validator":"tools/vrm/validate_formal_vrm_delivery.py","requiredKeys":["a","i","u","e","o","blink","smile"],"releaseBlocking":true},{"id":"springBones","label":"Spring bone 說明","requiredPath":"SPRING_BONES.md","validator":"tools/vrm/validate_formal_vrm_delivery.py","templateMarkersBlocked":true,"releaseBlocking":true},{"id":"acceptanceMedia","label":"驗收截圖或短片","requiredPath":"acceptance/*.png|*.jpg|*.webp|*.mp4|*.webm|*.mov","validator":"tools/vrm/validate_formal_vrm_delivery.py","emptyFileBlocked":true,"releaseBlocking":true},{"id":"visualQuality","label":"視覺品質驗收報告","requiredPath":"VISUAL_QA.json","validator":"tools/vrm/validate_formal_vrm_delivery.py","requiredChecks":["human-readable-full-body","matches-mika-reference","not-ai3d-point-cloud","not-greybox-or-placeholder","face-and-hair-clean","outfit-identifiable","mobile-framing-pass","manual-review-approved"],"validationRules":["approved=true","blockingReasons=[]"],"releaseBlocking":true},{"id":"acceptanceChecklist","label":"驗收勾選清單","requiredPath":"ACCEPTANCE_CHECKLIST.md","validator":"tools/vrm/validate_formal_vrm_delivery.py","requiredChecks":["idle-standing","lyric-mouth-a-i-u-e-o","eight-beat-step","leg-lift-or-heel","hand-gesture","chorus-dance","no-vertical-jitter","learnmore-mobile-framing"],"validationRules":["all-checks-completed"],"releaseBlocking":true}],"deliveryFilePlan":[{"id":"modelFile","requiredInputId":"model","path":"mika-formal.vrm","kind":"vrm-model","generatedByScaffold":false,"releaseBlocking":true,"validationRules":["must-exist","non-empty","ready-for-mika-full-body"]},{"id":"deliveryManifestFile","requiredInputId":"deliveryManifest","path":"DELIVERY_MANIFEST.json","kind":"json","generatedByScaffold":true,"releaseBlocking":true,"validationRules":["schemaVersion=1","avatarId=mika_formal_vrm","runtime=vrm","modelFilename=mika-formal.vrm"]},{"id":"sourceProjectFolder","requiredInputId":"sourceProject","path":"source/","kind":"source-project-folder","generatedByScaffold":true,"releaseBlocking":true,"acceptedExtensions":[".vroid",".blend",".fbx",".pmx"],"validationRules":["at-least-one-file","non-empty"]},{"id":"modelProductionRequestFile","requiredInputId":"modelProductionRequest","path":"MODEL_PRODUCTION_REQUEST.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"requiredFragments":["mika-formal.vrm","不可把舊版測試 3D 角色改名","intake_formal_vrm_candidate.py"],"validationRules":["must-exist","non-empty","model-production-contract"]},{"id":"licenseFile","requiredInputId":"license","path":"LICENSE.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"validationRules":["must-exist","non-empty","no-template-marker","no-todo"]},{"id":"textureSourcesFile","requiredInputId":"textureSources","path":"TEXTURE_SOURCES.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"validationRules":["must-exist","non-empty","no-template-marker","no-todo"]},{"id":"expressionMapFile","requiredInputId":"expressionMap","path":"expression-map.json","kind":"json","generatedByScaffold":true,"releaseBlocking":true,"requiredKeys":["a","i","u","e","o","blink","smile"],"validationRules":["must-exist","valid-json","required-keys-non-empty"]},{"id":"springBonesFile","requiredInputId":"springBones","path":"SPRING_BONES.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"validationRules":["must-exist","non-empty","no-template-marker","no-todo"]},{"id":"acceptanceMediaFolder","requiredInputId":"acceptanceMedia","path":"acceptance/","kind":"media-folder","generatedByScaffold":true,"releaseBlocking":true,"acceptedExtensions":[".png",".jpg",".jpeg",".webp",".mp4",".webm",".mov"],"validationRules":["at-least-one-file","non-empty"]},{"id":"acceptanceChecklistFile","requiredInputId":"acceptanceChecklist","path":"ACCEPTANCE_CHECKLIST.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"requiredChecks":["idle-standing","lyric-mouth-a-i-u-e-o","eight-beat-step","leg-lift-or-heel","hand-gesture","chorus-dance","no-vertical-jitter","learnmore-mobile-framing"],"validationRules":["must-exist","non-empty","all-checks-completed"]}],"readinessUrl":"/mika-avatar/api/vrm/formal/status","modelBodyStatusUrl":"/mika-avatar/api/vrm/formal/model-body","buildEnvironmentUrl":"/mika-avatar/api/vrm/formal/build-environment","buildEnvironmentReport":"reports/mika-formal-vrm-build-environment.json","blenderIntakeUrl":"/mika-avatar/api/vrm/formal/blender-intake","blenderIntakeReport":"reports/mika-formal-ai3d-blender-intake.json","blenderWorkspaceUrl":"/mika-avatar/api/vrm/formal/blender-workspace","blenderWorkspaceReport":"reports/mika-formal-ai3d-blender-workspace.json","blenderWorkspacePreviewUrl":"/mika-avatar/api/vrm/formal/blender-workspace-preview","blenderWorkspacePreviewImageUrl":"/mika-avatar/handoff/mika-formal-vrm/blender-workspace-preview.png","blenderWorkspacePreviewReport":"reports/mika-formal-ai3d-blender-workspace-preview.json","materialRebuildUrl":"/mika-avatar/api/vrm/formal/material-rebuild","materialRebuildReport":"reports/mika-formal-ai3d-material-rebuild-plan.json","materialApplicationUrl":"/mika-avatar/api/vrm/formal/material-application","materialApplicationReport":"reports/mika-formal-ai3d-material-application.json","expressionShapeKeysUrl":"/mika-avatar/api/vrm/formal/expression-shape-keys","expressionShapeKeysReport":"reports/mika-formal-ai3d-expression-shape-keys.json","skinWeightsUrl":"/mika-avatar/api/vrm/formal/skin-weights","skinWeightsReport":"reports/mika-formal-ai3d-skin-weights.json","springBonePlanUrl":"/mika-avatar/api/vrm/formal/spring-bone-plan","springBonePlanReport":"reports/mika-formal-ai3d-spring-bone-plan.json","springBoneDocument":"deliveries/mika-formal-vrm/SPRING_BONES.md","draftExportUrl":"/mika-avatar/api/vrm/formal/draft-export","draftExportReport":"reports/mika-formal-draft-export.json","draftExportInspectionReport":"reports/mika-formal-draft-export-inspection.json","draftReleaseCandidateUrl":"/mika-avatar/api/vrm/formal/draft-release-candidate","draftReleaseCandidateReport":"reports/mika-formal-draft-release-candidate.json","externalAssetsUrl":"/mika-avatar/api/vrm/formal/external-assets","externalAssets":{"schemaVersion":1,"avatarId":"mika_formal_vrm","runtime":"vrm","ready":true,"assetDir":"/app/src/mika_avatar_core/static/vrm/formal/assets","assetDirRelative":"src/mika_avatar_core/static/vrm/formal/assets","modelFilename":"mika-formal.vrm","modelPath":"/app/src/mika_avatar_core/static/vrm/formal/assets/mika-formal.vrm","modelPathRelative":"src/mika_avatar_core/static/vrm/formal/assets/mika-formal.vrm","modelUrl":"/mika-avatar/static/vrm/formal/assets/mika-formal.vrm","modelFilePresent":true,"modelBytes":138663988,"modelSha256":"ec02e827e49ade6694a12beb66924d9e02434f908e7a2df068ae2fabb7ba590d","env":{"assetDirVariable":"MIKA_FORMAL_VRM_ASSET_DIR","configuredAssetDir":"","defaultHostAssetDir":"./dist/mika-formal-vrm-assets","containerAssetDir":"/app/src/mika_avatar_core/static/vrm/formal/assets"},"blockingReasons":[],"blockingReasonCount":0,"nextAction":"run formal release dry-run before promotion"},"visualQualityUrl":"/mika-avatar/api/vrm/formal/visual-quality","visualQualityReport":"deliveries/mika-formal-vrm/VISUAL_QA.json","visualQuality":{"schemaVersion":1,"avatarId":"mika_formal_vrm","runtime":"vrm","url":"/mika-avatar/api/vrm/formal/visual-quality","reportPath":"deliveries/mika-formal-vrm/VISUAL_QA.json","approved":false,"readyForLearnMore":false,"requiredCheckIds":["human-readable-full-body","matches-mika-reference","not-ai3d-point-cloud","not-greybox-or-placeholder","face-and-hair-clean","outfit-identifiable","mobile-framing-pass","manual-review-approved"],"requiredCheckCount":8,"checks":{"human-readable-full-body":false,"matches-mika-reference":false,"not-ai3d-point-cloud":false,"not-greybox-or-placeholder":false,"face-and-hair-clean":false,"outfit-identifiable":false,"mobile-framing-pass":false,"manual-review-approved":false},"missingCheckIds":[],"missingCheckCount":0,"failedCheckIds":["face-and-hair-clean","human-readable-full-body","manual-review-approved","matches-mika-reference","mobile-framing-pass","not-ai3d-point-cloud","not-greybox-or-placeholder","outfit-identifiable"],"failedCheckCount":8,"reviewer":"Codex visual gate","reviewedMedia":["reports/mika-formal-ai3d-candidate-preview.png","reports/mika-formal-ai3d-blender-workspace-preview.png"],"reviewedMediaCount":2,"notes":"This file intentionally blocks release/promotion of the current draft VRM. Replace it only after a real formal Mika model passes visual QA.","blockingReasons":["視覺品質驗收報告 approved 必須是 true","視覺品質驗收報告仍有未通過項目: ['face-and-hair-clean', 'human-readable-full-body', 'manual-review-approved', 'matches-mika-reference', 'mobile-framing-pass', 'not-ai3d-point-cloud', 'not-greybox-or-placeholder', 'outfit-identifiable']","視覺品質驗收未通過: AI3D candidate preview is still point-cloud-like and not a clean human-readable Mika model","視覺品質驗收未通過: Draft model does not match the formal Mika reference closely enough for LearnMore","視覺品質驗收未通過: Face, hair, outfit silhouette, and mobile framing still require a rebuilt model body"],"blockingReasonCount":5,"nextAction":"rebuild-formal-model-body"},"referenceGapReportUrl":"/mika-avatar/handoff/mika-formal-vrm/reference-gap.md","referenceGapReportJsonUrl":"/mika-avatar/handoff/mika-formal-vrm/reference-gap.json","referenceGapReport":"reports/mika-formal-vrm-reference-gap.md","referenceGapReportJson":"reports/mika-formal-vrm-reference-gap.json","highQualityPlanReportUrl":"/mika-avatar/handoff/mika-formal-vrm/high-quality-plan.md","highQualityPlanReportJsonUrl":"/mika-avatar/handoff/mika-formal-vrm/high-quality-plan.json","highQualityPlanReport":"reports/mika-formal-vrm-high-quality-plan.md","highQualityPlanReportJson":"reports/mika-formal-vrm-high-quality-plan.json","localAi3dRunSummaryUrl":"/mika-avatar/handoff/mika-formal-vrm/ai3d-local-run-summary.md","localAi3dRunSummaryJsonUrl":"/mika-avatar/handoff/mika-formal-vrm/ai3d-local-run-summary.json","localAi3dRunSummary":"reports/mika-formal-ai3d-local-run-summary.md","localAi3dRunSummaryJson":"reports/mika-formal-ai3d-local-run-summary.json","vroidBlenderReconstructionPlanUrl":"/mika-avatar/handoff/mika-formal-vrm/vroid-blender-reconstruction-plan.md","vroidBlenderReconstructionPlanJsonUrl":"/mika-avatar/handoff/mika-formal-vrm/vroid-blender-reconstruction-plan.json","vroidBlenderReconstructionPlan":"reports/mika-formal-vroid-blender-reconstruction-plan.md","vroidBlenderReconstructionPlanJson":"reports/mika-formal-vroid-blender-reconstruction-plan.json","vroidBlenderWorkspaceUrl":"/mika-avatar/handoff/mika-formal-vrm/vroid-blender-workspace.md","vroidBlenderWorkspaceJsonUrl":"/mika-avatar/handoff/mika-formal-vrm/vroid-blender-workspace.json","vroidBlenderWorkspacePreviewImageUrl":"/mika-avatar/handoff/mika-formal-vrm/vroid-blender-workspace-preview.png","vroidBlenderWorkspaceSourceFileUrl":"/mika-avatar/handoff/mika-formal-vrm/source/mika-formal-vroid-blender-workspace.blend","vroidBlenderWorkspace":"reports/mika-formal-vroid-blender-workspace.md","vroidBlenderWorkspaceJson":"reports/mika-formal-vroid-blender-workspace.json","vroidBlenderWorkspacePreviewImage":"reports/mika-formal-vroid-blender-workspace-preview.png","vroidBlenderWorkspaceSourceFile":"deliveries/mika-formal-vrm/source/mika-formal-vroid-blender-workspace.blend","humanoidExportCleanupReport":"reports/mika-formal-humanoid-export-cleanup.json","learnMoreIntegrationUrl":"/mika-avatar/api/integration/learnmore","filename":"mika-formal-vrm-handoff.zip","pageUrl":"/mika-avatar/handoff/mika-formal-vrm","packageUrl":"/mika-avatar/handoff/mika-formal-vrm-handoff.zip","deliveryTemplateUrl":"/mika-avatar/handoff/mika-formal-vrm-delivery-template.zip","deliveryTemplate":{"filename":"mika-formal-vrm-delivery-template.zip","url":"/mika-avatar/handoff/mika-formal-vrm-delivery-template.zip","contentType":"application/zip","bytes":7528,"sha256":"a79127aa788aeb2e2f9c7d5c15634436b4ddf549ed19d1ca1efd588bbdcdde08","fileCount":13,"verifyReady":true},"handoffPackage":{"filename":"mika-formal-vrm-handoff.zip","url":"/mika-avatar/handoff/mika-formal-vrm-handoff.zip","contentType":"application/zip","bytes":15592667,"sha256":"216d1005ba20e9872926d12d03f72a5ed5876a832f860aeec174a31812b645b5","packageFingerprint":"7e4f095afebf0da79f7ddc65b470c31e05fdc2d2dd0599b29746907507ed97f5"},"packageFingerprint":"7e4f095afebf0da79f7ddc65b470c31e05fdc2d2dd0599b29746907507ed97f5","downloadVerification":{"publicBaseUrl":"https://ycspace.myvnc.com/mika-avatar","handoffPackage":{"url":"/mika-avatar/handoff/mika-formal-vrm-handoff.zip","downloadUrl":"https://ycspace.myvnc.com/mika-avatar/handoff/mika-formal-vrm-handoff.zip","outputPath":"dist/mika-formal-vrm-handoff.zip","expectedFingerprint":"7e4f095afebf0da79f7ddc65b470c31e05fdc2d2dd0599b29746907507ed97f5","expectedBytes":15592667,"expectedSha256":"216d1005ba20e9872926d12d03f72a5ed5876a832f860aeec174a31812b645b5","sha256Command":"echo \"216d1005ba20e9872926d12d03f72a5ed5876a832f860aeec174a31812b645b5  dist/mika-formal-vrm-handoff.zip\" | sha256sum -c -","verifyCommand":"python3 tools/vrm/package_formal_vrm_handoff.py --verify dist/mika-formal-vrm-handoff.zip"},"deliveryTemplate":{"url":"/mika-avatar/handoff/mika-formal-vrm-delivery-template.zip","downloadUrl":"https://ycspace.myvnc.com/mika-avatar/handoff/mika-formal-vrm-delivery-template.zip","outputPath":"dist/mika-formal-vrm-delivery-template.zip","expectedBytes":7528,"expectedSha256":"a79127aa788aeb2e2f9c7d5c15634436b4ddf549ed19d1ca1efd588bbdcdde08","sha256Command":"echo \"a79127aa788aeb2e2f9c7d5c15634436b4ddf549ed19d1ca1efd588bbdcdde08  dist/mika-formal-vrm-delivery-template.zip\" | sha256sum -c -","verifyCommand":"python3 tools/vrm/package_formal_vrm_delivery_template.py --verify dist/mika-formal-vrm-delivery-template.zip"},"learnMoreIntegration":{"url":"/mika-avatar/api/integration/learnmore","readinessUrl":"/mika-avatar/api/vrm/formal/status","jsonOutput":"reports/mika-formal-learnmore-release-state.json","readyField":"ready","blockingField":"blockingReasons","expectedReportFields":["ready","blockingReasons","blockingReasonCount","deliveryPreflightDiffs","deliveryPreflightDiffCount","releasePlanSummaryDiffs","releasePlanSummaryDiffCount","formalMikaCandidateScanShapeErrors","formalMikaCandidateScanShapeErrorCount","idDiffs","idDiffCount","unexpectedLegacyIntegrationFields","unexpectedLegacyIntegrationFieldCount"],"expectedReportFieldCount":13,"verifyCommand":"python3 tools/vrm/verify_formal_learnmore_release_state.py --base-url https://ycspace.myvnc.com/mika-avatar --json-output reports/mika-formal-learnmore-release-state.json"},"releaseReportsValidation":{"tool":"tools/vrm/validate_formal_vrm_release_reports.py","jsonOutput":"reports/mika-formal-vrm-release-reports-validation.json","learnMoreJson":"reports/mika-formal-learnmore-release-state.json","readyField":"ready","blockingField":"blockingReasons","verifyCommand":"python3 tools/vrm/validate_formal_vrm_release_reports.py --delivery-preflight-json reports/mika-formal-vrm-delivery-preflight.json --learnmore-json reports/mika-formal-learnmore-release-state.json --json-output reports/mika-formal-vrm-release-reports-validation.json"},"commands":["mkdir -p dist","curl -L https://ycspace.myvnc.com/mika-avatar/handoff/mika-formal-vrm-handoff.zip -o dist/mika-formal-vrm-handoff.zip","echo \"216d1005ba20e9872926d12d03f72a5ed5876a832f860aeec174a31812b645b5  dist/mika-formal-vrm-handoff.zip\" | sha256sum -c -","python3 tools/vrm/package_formal_vrm_handoff.py --verify dist/mika-formal-vrm-handoff.zip","curl -L https://ycspace.myvnc.com/mika-avatar/handoff/mika-formal-vrm-delivery-template.zip -o dist/mika-formal-vrm-delivery-template.zip","echo \"a79127aa788aeb2e2f9c7d5c15634436b4ddf549ed19d1ca1efd588bbdcdde08  dist/mika-formal-vrm-delivery-template.zip\" | sha256sum -c -","python3 tools/vrm/package_formal_vrm_delivery_template.py --verify dist/mika-formal-vrm-delivery-template.zip","python3 tools/vrm/verify_formal_learnmore_release_state.py --base-url https://ycspace.myvnc.com/mika-avatar --json-output reports/mika-formal-learnmore-release-state.json","python3 tools/vrm/validate_formal_vrm_release_reports.py --delivery-preflight-json reports/mika-formal-vrm-delivery-preflight.json --learnmore-json reports/mika-formal-learnmore-release-state.json --json-output reports/mika-formal-vrm-release-reports-validation.json"]},"contentType":"application/zip","manifestUrl":"/mika-avatar/static/vrm/formal/manifest.json","modelProductionRequest":"deliveries/mika-formal-vrm/MODEL_PRODUCTION_REQUEST.md","modelProductionSpec":{"jsonPath":"docs/mika-formal-vrm-production-spec.json","markdownPath":"docs/mika-formal-vrm-production-spec.md","jsonUrl":"/mika-avatar/handoff/mika-formal-vrm/production-spec.json","markdownUrl":"/mika-avatar/handoff/mika-formal-vrm/production-spec.md","tool":"tools/vrm/build_formal_vrm_model_production_spec.py","buildCommand":"python3 tools/vrm/build_formal_vrm_model_production_spec.py","files":{"json":{"path":"docs/mika-formal-vrm-production-spec.json","url":"/mika-avatar/handoff/mika-formal-vrm/production-spec.json","contentType":"application/json","bytes":9298,"sha256":"aaf4a8ac6cdbcb5e7fb40665bf16c72ace40166bb0dc85bba6b9fd73215e65e7"},"markdown":{"path":"docs/mika-formal-vrm-production-spec.md","url":"/mika-avatar/handoff/mika-formal-vrm/production-spec.md","contentType":"text/markdown; charset=utf-8","bytes":5400,"sha256":"d0548b4d3d7cdd014aa72a2db2d5ec4b0935ca981dbfd74e68328394f3cee402"}}},"characterBrief":"docs/mika-formal-vrm-character-brief.md","handoffDocument":"docs/mika-formal-vrm-handoff.md","deliveryPreflight":{"tool":"tools/vrm/check_formal_vrm_delivery_readiness.py","candidateScanApiUrl":"/mika-avatar/api/vrm/formal/candidates","command":"python3 tools/vrm/check_formal_vrm_delivery_readiness.py /path/to/mika-formal-delivery --json-output reports/mika-formal-vrm-delivery-preflight.json","jsonOutput":"reports/mika-formal-vrm-delivery-preflight.json","readyField":"ready","blockingField":"blockingReasons","statusField":"deliveryValidation.filePlanStatus","deliveryValidationField":"deliveryValidation","selectedDeliveryDirField":"selectedDeliveryDir","modelScanRootsField":"modelScanRoots","modelArtifactsField":"modelArtifacts","modelArtifactCountField":"modelArtifactCount","scanDirOption":"--scan-dir /path/to/model-output","nextReadyAction":"run-delivery-validation","nextBlockedAction":"fix-delivery-package"},"deliveryValidation":{"tool":"tools/vrm/validate_formal_vrm_delivery.py","scaffoldTool":"tools/vrm/scaffold_formal_vrm_delivery.py","scaffoldCommand":"python3 tools/vrm/scaffold_formal_vrm_delivery.py /path/to/mika-formal-delivery","candidateStagingTool":"tools/vrm/stage_formal_vrm_candidate.py","candidateStagingCommand":"python3 tools/vrm/stage_formal_vrm_candidate.py /path/to/model-output/mika.vrm --delivery-dir /path/to/mika-formal-delivery --source-project /path/to/model-output/mika.blend --acceptance-media /path/to/model-output/standing.png","templateUrl":"/mika-avatar/handoff/mika-formal-vrm-delivery-template.zip","command":"python3 tools/vrm/validate_formal_vrm_delivery.py /path/to/mika-formal-delivery --json-output reports/mika-formal-vrm-delivery.json","jsonOutput":"reports/mika-formal-vrm-delivery.json","readyField":"readyForIntake","blockingField":"blockingReasons","statusField":"filePlanStatus","nextReadyAction":"run-candidate-intake","nextBlockedAction":"fix-delivery-package","filePlan":[{"id":"modelFile","requiredInputId":"model","path":"mika-formal.vrm","kind":"vrm-model","generatedByScaffold":false,"releaseBlocking":true,"validationRules":["must-exist","non-empty","ready-for-mika-full-body"]},{"id":"deliveryManifestFile","requiredInputId":"deliveryManifest","path":"DELIVERY_MANIFEST.json","kind":"json","generatedByScaffold":true,"releaseBlocking":true,"validationRules":["schemaVersion=1","avatarId=mika_formal_vrm","runtime=vrm","modelFilename=mika-formal.vrm"]},{"id":"sourceProjectFolder","requiredInputId":"sourceProject","path":"source/","kind":"source-project-folder","generatedByScaffold":true,"releaseBlocking":true,"acceptedExtensions":[".vroid",".blend",".fbx",".pmx"],"validationRules":["at-least-one-file","non-empty"]},{"id":"modelProductionRequestFile","requiredInputId":"modelProductionRequest","path":"MODEL_PRODUCTION_REQUEST.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"requiredFragments":["mika-formal.vrm","不可把舊版測試 3D 角色改名","intake_formal_vrm_candidate.py"],"validationRules":["must-exist","non-empty","model-production-contract"]},{"id":"licenseFile","requiredInputId":"license","path":"LICENSE.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"validationRules":["must-exist","non-empty","no-template-marker","no-todo"]},{"id":"textureSourcesFile","requiredInputId":"textureSources","path":"TEXTURE_SOURCES.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"validationRules":["must-exist","non-empty","no-template-marker","no-todo"]},{"id":"expressionMapFile","requiredInputId":"expressionMap","path":"expression-map.json","kind":"json","generatedByScaffold":true,"releaseBlocking":true,"requiredKeys":["a","i","u","e","o","blink","smile"],"validationRules":["must-exist","valid-json","required-keys-non-empty"]},{"id":"springBonesFile","requiredInputId":"springBones","path":"SPRING_BONES.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"validationRules":["must-exist","non-empty","no-template-marker","no-todo"]},{"id":"acceptanceMediaFolder","requiredInputId":"acceptanceMedia","path":"acceptance/","kind":"media-folder","generatedByScaffold":true,"releaseBlocking":true,"acceptedExtensions":[".png",".jpg",".jpeg",".webp",".mp4",".webm",".mov"],"validationRules":["at-least-one-file","non-empty"]},{"id":"acceptanceChecklistFile","requiredInputId":"acceptanceChecklist","path":"ACCEPTANCE_CHECKLIST.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"requiredChecks":["idle-standing","lyric-mouth-a-i-u-e-o","eight-beat-step","leg-lift-or-heel","hand-gesture","chorus-dance","no-vertical-jitter","learnmore-mobile-framing"],"validationRules":["must-exist","non-empty","all-checks-completed"]}],"reportFields":["readyForIntake","artifacts","filePlanStatus","inspection","blockingReasons"],"requiredArtifacts":["mika-formal.vrm","DELIVERY_MANIFEST.json","MODEL_PRODUCTION_REQUEST.md","non-empty source project: .vroid/.blend/.fbx/.pmx","LICENSE.md or mika-formal-vrm-license.md","TEXTURE_SOURCES.md or texture/material README","expression-map.json","SPRING_BONES.md","ACCEPTANCE_CHECKLIST.md","VISUAL_QA.json","non-empty acceptance screenshots or video"]},"candidateScan":{"url":"/mika-avatar/api/vrm/formal/candidates","modelArtifactCount":2,"vrmArtifactCount":1,"formalStageableCount":0,"flowTestOnlyCount":1,"sourceMetadataReadyCount":2,"sourceMetadataMissingCount":0,"readyForStaging":false,"nextAction":"place-formal-candidate"},"modelBodyStatus":{"schemaVersion":1,"avatarId":"mika_formal_vrm","version":"20260610-vrm016","modelFilename":"mika-formal.vrm","modelUrl":"","modelBodyBuilt":false,"manifestAvailable":false,"readyForLearnMore":false,"currentPhase":"vroid-blender-source-workspace-ready","nextAction":"author-skinned-vroid-blender-model-then-export-formal-vrm","blockingReasons":["缺少正式 VRM 模型本體: mika-formal.vrm","VRoid/Blender 正式主線已有可視覺檢查的 source workspace，仍需製作 skinned mesh、humanoid rig、表情/嘴型、Spring Bone 並匯出 mika-formal.vrm","AI3D Blender 工作檔已成功匯出草稿 VRM，仍需人工 review、補驗收媒體、stage 為正式 mika-formal.vrm","流程測試 VRM 不可當作正式 Mika"],"acceptedModelRequirements":["檔名必須是 mika-formal.vrm","必須是有效 VRM/GLB 2.0 並宣告 VRM extension","必須有 Mika 唱跳所需 humanoid bones","必須提供 a/i/u/e/o、blink、smile 嘴型與表情","必須有正式材質與貼圖來源紀錄","不可使用舊版測試 3D 角色或 flow-test-only 模型"],"candidateScanSummary":{"url":"/mika-avatar/api/vrm/formal/candidates","modelArtifactCount":2,"vrmArtifactCount":1,"formalStageableCount":0,"flowTestOnlyCount":1,"sourceMetadataReadyCount":2,"sourceMetadataMissingCount":0,"readyForStaging":false,"nextAction":"place-formal-candidate"},"materialApplicationSummary":{"url":"/mika-avatar/api/vrm/formal/material-application","reportPath":"reports/mika-formal-ai3d-material-application.json","available":true,"readyForMaterialReview":true,"readyForFormalExport":false,"nextAction":"manual-review-uv-material-segmentation-then-skin-shapekeys-export-vrm","draftTextureMaterialCount":10,"textureImageCount":3,"materialAssignmentPlanCount":10,"keyAssignedFaces":{"skin":39842,"hair_brown":21080,"jacket_coral":18284,"skirt_navy":77303,"music_accessory_gold":9991},"blockingReasons":["材質已可 review，但仍需 manual UV/material segmentation、skin weights、嘴型與 VRM export"],"blockingReasonCount":1},"expressionShapeKeysSummary":{"url":"/mika-avatar/api/vrm/formal/expression-shape-keys","reportPath":"reports/mika-formal-ai3d-expression-shape-keys.json","available":true,"readyForExpressionReview":true,"readyForFormalExport":false,"nextAction":"manual-cleanup-then-skin-weights-vrm-export","requiredShapeKeyNames":["aa","ih","ou","ee","oh","blink","happy"],"createdShapeKeyNames":["aa","ih","ou","ee","oh","blink","happy"],"missingShapeKeyNames":[],"shapeKeyCount":8,"expressionMap":{"a":"aa","i":"ih","u":"ou","e":"ee","o":"oh","blink":"blink","smile":"happy"},"keyDeformedVertices":{"aa":3869,"ih":3869,"ou":3869,"ee":3869,"oh":3869,"blink":3234,"happy":6121},"blockingReasons":["expression shape keys are draft bounding-box deformations and require manual facial cleanup","workspace still needs skin weights, humanoid verification and VRM export"],"blockingReasonCount":2},"skinWeightsSummary":{"url":"/mika-avatar/api/vrm/formal/skin-weights","reportPath":"reports/mika-formal-ai3d-skin-weights.json","available":true,"readyForSkinWeightReview":true,"readyForHumanoidReview":true,"readyForFormalExport":false,"nextAction":"manual-skin-weight-cleanup-then-humanoid-vrm-export","requiredBoneNames":["hips","spine","chest","neck","head","leftShoulder","leftUpperArm","leftLowerArm","leftHand","rightShoulder","rightUpperArm","rightLowerArm","rightHand","leftUpperLeg","leftLowerLeg","leftFoot","leftToes","rightUpperLeg","rightLowerLeg","rightFoot","rightToes"],"missingVertexGroupNames":[],"zeroWeightBoneNames":[],"totalMeshVertices":107314,"totalWeightedVertexAssignments":195430,"keyWeightedVertices":{"hips":58225,"spine":33365,"chest":21151,"neck":12938,"head":9351,"leftShoulder":2290,"leftUpperArm":3072,"leftLowerArm":5210,"leftHand":2426,"rightShoulder":1190,"rightUpperArm":1263,"rightLowerArm":2506,"rightHand":1243,"leftUpperLeg":15047,"leftLowerLeg":5289,"leftFoot":3902,"leftToes":1687,"rightUpperLeg":9932,"rightLowerLeg":2833,"rightFoot":1736,"rightToes":774},"blockingReasons":["skin weights are draft bounding-box vertex groups and require manual cleanup","workspace still needs humanoid validation, spring bones and VRM export"],"blockingReasonCount":2},"springBonePlanSummary":{"url":"/mika-avatar/api/vrm/formal/spring-bone-plan","reportPath":"reports/mika-formal-ai3d-spring-bone-plan.json","sourceDocumentPath":"deliveries/mika-formal-vrm/SPRING_BONES.md","available":true,"readyForDocumentReview":true,"readyForSpringBoneReview":true,"readyForFormalExport":false,"nextAction":"configure-spring-bones-in-blender-then-export-vrm","springBoneGroupCount":4,"groupIds":["front_hair","back_hair","skirt_hem","ribbon_and_accessory"],"acceptanceChecks":["idle-standing","eight-beat-step","leg-lift-or-heel","chorus-dance","no-vertical-jitter","learnmore-mobile-framing"],"blockingReasons":["Spring Bone 目前是 export 前設定計畫，尚未寫入正式 mika-formal.vrm","仍需在 Blender/VRM exporter 實際配置並以 LearnMore 唱跳畫面驗收","仍需確認裙襬、頭髮與配件 collider 不會造成上下抖動或穿模"],"blockingReasonCount":3},"draftExportSummary":{"url":"/mika-avatar/api/vrm/formal/draft-export","reportPath":"reports/mika-formal-draft-export.json","inspectionReportPath":"reports/mika-formal-draft-export-inspection.json","available":true,"exportSucceeded":true,"readyForCandidateReview":true,"readyForFormalStaging":false,"readyForLearnMore":false,"nextAction":"review-draft-vrm-export-then-stage-formal-vrm","outputTrackedInGit":false,"outputPath":"dist/mika-formal-draft-export.vrm","outputBytes":138663988,"outputSha256":"ec02e827e49ade6694a12beb66924d9e02434f908e7a2df068ae2fabb7ba590d","humanoidBoneCount":22,"expressionCount":18,"missingRequiredVrmExpressionNames":[],"missingRecommendedDanceBones":[],"parentWarningResolved":true,"blockingReasons":["草稿 VRM 檔案位於 dist/，目前不提交大型二進位檔","材質分區、skin weights 與臉部 shape keys 仍是自動草稿，需人工 review","仍缺 LearnMore 唱跳驗收媒體與驗收勾選清單"],"blockingReasonCount":3},"vroidBlenderWorkspaceSummary":{"url":"/mika-avatar/handoff/mika-formal-vrm/vroid-blender-workspace.json","previewImageUrl":"/mika-avatar/handoff/mika-formal-vrm/vroid-blender-workspace-preview.png","reportPath":"reports/mika-formal-vroid-blender-workspace.json","available":true,"ready":true,"qualityProfile":"procedural-vroid-guide-v3-mouth-shapes","workspaceKind":"vroid-blender-reconstruction-source","workspaceRepoPath":"deliveries/mika-formal-vrm/source/mika-formal-vroid-blender-workspace.blend","previewRepoPath":"reports/mika-formal-vroid-blender-workspace-preview.png","readyForFormalModeling":true,"readyForLearnMore":false,"formalStageable":false,"referenceImageCount":5,"objectCount":121,"meshObjectCount":104,"armatureObjectCount":1,"visualGuideFeatureCount":105,"mouthShapeGuideCount":20,"requiredMouthShapeNames":["a","i","u","e","o"],"nextAction":"replace guide meshes with a real VRoid/Blender Mika model, bind humanoid, author expressions, then export mika-formal.vrm","blockingReasons":["This is a source workspace and guide, not the final mika-formal.vrm","No final skinned Mika mesh has been authored yet","No acceptance media has been captured from a final VRM"],"blockingReasonCount":3},"currentArtifacts":{"stageableCandidates":[],"ai3dCandidates":[{"path":"ai3d/mika-formal-hunyuan3d.glb","extension":".glb","bytes":3865944,"formalStageable":false,"formalMikaFit":"ai3d-needs-rigging-not-stageable","nextAction":"rig-in-blender-and-export-vrm","sourceMetadataAvailable":true}],"flowTestOnlyCandidates":[{"path":"osa-100avatars-r1-057-Rose.vrm","extension":".vrm","bytes":2400964,"formalStageable":false,"formalMikaFit":"flow-test-only-not-formal-mika","nextAction":"","sourceMetadataAvailable":true}]}},"candidateIntake":{"tool":"tools/vrm/intake_formal_vrm_candidate.py","command":"python3 tools/vrm/intake_formal_vrm_candidate.py /path/to/mika-formal.vrm --license-label \"自有模型\" --source-url https://example.com/mika-formal-proof --license-file docs/licenses/mika-formal-vrm.md --inspection-output reports/mika-formal-vrm-inspection.md --json-output reports/mika-formal-vrm-intake.json","jsonOutput":"reports/mika-formal-vrm-intake.json","inspectionOutput":"reports/mika-formal-vrm-inspection.md","readyField":"intakeReady","blockingField":"blockingReasons","nextReadyAction":"run-release","nextBlockedAction":"fix-candidate-model"},"ai3dInputs":{"dir":"deliveries/mika-formal-vrm/ai3d-inputs","urlBase":"/mika-avatar/handoff/mika-formal-vrm/ai3d","manifestUrl":"/mika-avatar/handoff/mika-formal-vrm/ai3d/mika-formal-ai3d-job.json","contactSheetUrl":"/mika-avatar/handoff/mika-formal-vrm/ai3d/mika-formal-turnaround-contact-sheet.png","files":[{"filename":"mika-formal-ai3d-job.json","path":"deliveries/mika-formal-vrm/ai3d-inputs/mika-formal-ai3d-job.json","url":"/mika-avatar/handoff/mika-formal-vrm/ai3d/mika-formal-ai3d-job.json","exists":true,"contentType":"application/json","bytes":3513,"sha256":"e03c6b9abc206128037f1fe224d4339a8848e6590b4d8181bce9386972482f43"},{"filename":"mika-formal-front.png","path":"deliveries/mika-formal-vrm/ai3d-inputs/mika-formal-front.png","url":"/mika-avatar/handoff/mika-formal-vrm/ai3d/mika-formal-front.png","exists":true,"contentType":"image/png","bytes":495359,"sha256":"ae2456bf11d7dfcc26b94f7494894891c3be39a64899415719888b88f465b449"},{"filename":"mika-formal-side.png","path":"deliveries/mika-formal-vrm/ai3d-inputs/mika-formal-side.png","url":"/mika-avatar/handoff/mika-formal-vrm/ai3d/mika-formal-side.png","exists":true,"contentType":"image/png","bytes":374786,"sha256":"1a1adee18e358ff08f3405eec7ab266adc33e15d91d860b20232ec34ffc2acd1"},{"filename":"mika-formal-back.png","path":"deliveries/mika-formal-vrm/ai3d-inputs/mika-formal-back.png","url":"/mika-avatar/handoff/mika-formal-vrm/ai3d/mika-formal-back.png","exists":true,"contentType":"image/png","bytes":455026,"sha256":"effdcab55b4527da16f889891387a59a55292c67f259ab32c65945386a638e3b"},{"filename":"mika-formal-turnaround-contact-sheet.png","path":"deliveries/mika-formal-vrm/ai3d-inputs/mika-formal-turnaround-contact-sheet.png","url":"/mika-avatar/handoff/mika-formal-vrm/ai3d/mika-formal-turnaround-contact-sheet.png","exists":true,"contentType":"image/png","bytes":418548,"sha256":"668c3ba592f20764fdf88270cd88dc570f7dd37dcb5119b599da300b51463e7d"},{"filename":"README.md","path":"deliveries/mika-formal-vrm/ai3d-inputs/README.md","url":"/mika-avatar/handoff/mika-formal-vrm/ai3d/README.md","exists":true,"contentType":"text/markdown; charset=utf-8","bytes":1213,"sha256":"2f0ce7365404534c8a576f67e1705d175d556a02340108b5167fc73e94f8967c"}],"fileCount":6,"readyFileCount":6,"ready":true},"learnMoreReleaseStateGate":{"tool":"tools/vrm/verify_formal_learnmore_release_state.py","command":"python3 tools/vrm/verify_formal_learnmore_release_state.py --base-url https://ycspace.myvnc.com/mika-avatar --json-output reports/mika-formal-learnmore-release-state.json","jsonOutput":"reports/mika-formal-learnmore-release-state.json","readyField":"ready","blockingField":"blockingReasons","expectedReportFields":["ready","blockingReasons","blockingReasonCount","deliveryPreflightDiffs","deliveryPreflightDiffCount","releasePlanSummaryDiffs","releasePlanSummaryDiffCount","formalMikaCandidateScanShapeErrors","formalMikaCandidateScanShapeErrorCount","idDiffs","idDiffCount","unexpectedLegacyIntegrationFields","unexpectedLegacyIntegrationFieldCount"],"expectedReportFieldCount":13,"expectedPreferredVrmAvatarId":"mika_formal_vrm","expectedLegacyAvatarRemoved":true,"expectedIntegrationUrls":{"formalMikaStatusUrl":"/mika-avatar/api/vrm/formal/status","formalMikaReadinessUrl":"/mika-avatar/api/vrm/formal/status","formalMikaHandoffApiUrl":"/mika-avatar/api/handoff/mika-formal-vrm","formalMikaHandoffPackageUrl":"/mika-avatar/handoff/mika-formal-vrm-handoff.zip","formalMikaHandoffPageUrl":"/mika-avatar/handoff/mika-formal-vrm","formalMikaDeliveryTemplateUrl":"/mika-avatar/handoff/mika-formal-vrm-delivery-template.zip","formalMikaProductionSpecJsonUrl":"/mika-avatar/handoff/mika-formal-vrm/production-spec.json","formalMikaProductionSpecMarkdownUrl":"/mika-avatar/handoff/mika-formal-vrm/production-spec.md","formalMikaBlenderWorkspacePreviewUrl":"/mika-avatar/api/vrm/formal/blender-workspace-preview","formalMikaBlenderWorkspacePreviewImageUrl":"/mika-avatar/handoff/mika-formal-vrm/blender-workspace-preview.png","formalMikaMaterialRebuildUrl":"/mika-avatar/api/vrm/formal/material-rebuild","formalMikaMaterialApplicationUrl":"/mika-avatar/api/vrm/formal/material-application","formalMikaExpressionShapeKeysUrl":"/mika-avatar/api/vrm/formal/expression-shape-keys","formalMikaSkinWeightsUrl":"/mika-avatar/api/vrm/formal/skin-weights","formalMikaSpringBonePlanUrl":"/mika-avatar/api/vrm/formal/spring-bone-plan","formalMikaDraftExportUrl":"/mika-avatar/api/vrm/formal/draft-export","formalMikaDraftReleaseCandidateUrl":"/mika-avatar/api/vrm/formal/draft-release-candidate","formalMikaExternalAssetsUrl":"/mika-avatar/api/vrm/formal/external-assets","formalMikaVisualQualityUrl":"/mika-avatar/api/vrm/formal/visual-quality"},"expectedFormalIntegrationState":{"formalMikaPromotionReady":true,"formalMikaCanReplaceLegacy":true,"formalMikaReplacementBlocked":false,"formalMikaBlockingReasons":[]},"expectedFormalMikaDeliveryPreflight":{"tool":"tools/vrm/check_formal_vrm_delivery_readiness.py","candidateScanApiUrl":"/mika-avatar/api/vrm/formal/candidates","command":"python3 tools/vrm/check_formal_vrm_delivery_readiness.py /path/to/mika-formal-delivery --json-output reports/mika-formal-vrm-delivery-preflight.json","jsonOutput":"reports/mika-formal-vrm-delivery-preflight.json","readyField":"ready","blockingField":"blockingReasons","statusField":"deliveryValidation.filePlanStatus","deliveryValidationField":"deliveryValidation","selectedDeliveryDirField":"selectedDeliveryDir","modelScanRootsField":"modelScanRoots","modelArtifactsField":"modelArtifacts","modelArtifactCountField":"modelArtifactCount","scanDirOption":"--scan-dir /path/to/model-output","nextReadyAction":"run-delivery-validation","nextBlockedAction":"fix-delivery-package"}},"releasePlan":{"readyToRunRelease":false,"nextAction":"finish-formal-vrm-model","deliveryPreflight":{"tool":"tools/vrm/check_formal_vrm_delivery_readiness.py","candidateScanApiUrl":"/mika-avatar/api/vrm/formal/candidates","command":"python3 tools/vrm/check_formal_vrm_delivery_readiness.py /path/to/mika-formal-delivery --json-output reports/mika-formal-vrm-delivery-preflight.json","jsonOutput":"reports/mika-formal-vrm-delivery-preflight.json","readyField":"ready","blockingField":"blockingReasons","statusField":"deliveryValidation.filePlanStatus","deliveryValidationField":"deliveryValidation","selectedDeliveryDirField":"selectedDeliveryDir","modelScanRootsField":"modelScanRoots","modelArtifactsField":"modelArtifacts","modelArtifactCountField":"modelArtifactCount","scanDirOption":"--scan-dir /path/to/model-output","nextReadyAction":"run-delivery-validation","nextBlockedAction":"fix-delivery-package"},"deliveryValidation":{"tool":"tools/vrm/validate_formal_vrm_delivery.py","scaffoldTool":"tools/vrm/scaffold_formal_vrm_delivery.py","scaffoldCommand":"python3 tools/vrm/scaffold_formal_vrm_delivery.py /path/to/mika-formal-delivery","candidateStagingTool":"tools/vrm/stage_formal_vrm_candidate.py","candidateStagingCommand":"python3 tools/vrm/stage_formal_vrm_candidate.py /path/to/model-output/mika.vrm --delivery-dir /path/to/mika-formal-delivery --source-project /path/to/model-output/mika.blend --acceptance-media /path/to/model-output/standing.png","templateUrl":"/mika-avatar/handoff/mika-formal-vrm-delivery-template.zip","command":"python3 tools/vrm/validate_formal_vrm_delivery.py /path/to/mika-formal-delivery --json-output reports/mika-formal-vrm-delivery.json","jsonOutput":"reports/mika-formal-vrm-delivery.json","readyField":"readyForIntake","blockingField":"blockingReasons","statusField":"filePlanStatus","nextReadyAction":"run-candidate-intake","nextBlockedAction":"fix-delivery-package","filePlan":[{"id":"modelFile","requiredInputId":"model","path":"mika-formal.vrm","kind":"vrm-model","generatedByScaffold":false,"releaseBlocking":true,"validationRules":["must-exist","non-empty","ready-for-mika-full-body"]},{"id":"deliveryManifestFile","requiredInputId":"deliveryManifest","path":"DELIVERY_MANIFEST.json","kind":"json","generatedByScaffold":true,"releaseBlocking":true,"validationRules":["schemaVersion=1","avatarId=mika_formal_vrm","runtime=vrm","modelFilename=mika-formal.vrm"]},{"id":"sourceProjectFolder","requiredInputId":"sourceProject","path":"source/","kind":"source-project-folder","generatedByScaffold":true,"releaseBlocking":true,"acceptedExtensions":[".vroid",".blend",".fbx",".pmx"],"validationRules":["at-least-one-file","non-empty"]},{"id":"modelProductionRequestFile","requiredInputId":"modelProductionRequest","path":"MODEL_PRODUCTION_REQUEST.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"requiredFragments":["mika-formal.vrm","不可把舊版測試 3D 角色改名","intake_formal_vrm_candidate.py"],"validationRules":["must-exist","non-empty","model-production-contract"]},{"id":"licenseFile","requiredInputId":"license","path":"LICENSE.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"validationRules":["must-exist","non-empty","no-template-marker","no-todo"]},{"id":"textureSourcesFile","requiredInputId":"textureSources","path":"TEXTURE_SOURCES.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"validationRules":["must-exist","non-empty","no-template-marker","no-todo"]},{"id":"expressionMapFile","requiredInputId":"expressionMap","path":"expression-map.json","kind":"json","generatedByScaffold":true,"releaseBlocking":true,"requiredKeys":["a","i","u","e","o","blink","smile"],"validationRules":["must-exist","valid-json","required-keys-non-empty"]},{"id":"springBonesFile","requiredInputId":"springBones","path":"SPRING_BONES.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"validationRules":["must-exist","non-empty","no-template-marker","no-todo"]},{"id":"acceptanceMediaFolder","requiredInputId":"acceptanceMedia","path":"acceptance/","kind":"media-folder","generatedByScaffold":true,"releaseBlocking":true,"acceptedExtensions":[".png",".jpg",".jpeg",".webp",".mp4",".webm",".mov"],"validationRules":["at-least-one-file","non-empty"]},{"id":"acceptanceChecklistFile","requiredInputId":"acceptanceChecklist","path":"ACCEPTANCE_CHECKLIST.md","kind":"markdown","generatedByScaffold":true,"releaseBlocking":true,"requiredChecks":["idle-standing","lyric-mouth-a-i-u-e-o","eight-beat-step","leg-lift-or-heel","hand-gesture","chorus-dance","no-vertical-jitter","learnmore-mobile-framing"],"validationRules":["must-exist","non-empty","all-checks-completed"]}],"reportFields":["readyForIntake","artifacts","filePlanStatus","inspection","blockingReasons"],"requiredArtifacts":["mika-formal.vrm","DELIVERY_MANIFEST.json","MODEL_PRODUCTION_REQUEST.md","non-empty source project: .vroid/.blend/.fbx/.pmx","LICENSE.md or mika-formal-vrm-license.md","TEXTURE_SOURCES.md or texture/material README","expression-map.json","SPRING_BONES.md","ACCEPTANCE_CHECKLIST.md","VISUAL_QA.json","non-empty acceptance screenshots or video"]},"candidateIntake":{"tool":"tools/vrm/intake_formal_vrm_candidate.py","command":"python3 tools/vrm/intake_formal_vrm_candidate.py /path/to/mika-formal.vrm --license-label \"自有模型\" --source-url https://example.com/mika-formal-proof --license-file docs/licenses/mika-formal-vrm.md --inspection-output reports/mika-formal-vrm-inspection.md --json-output reports/mika-formal-vrm-intake.json","jsonOutput":"reports/mika-formal-vrm-intake.json","inspectionOutput":"reports/mika-formal-vrm-inspection.md","readyField":"intakeReady","blockingField":"blockingReasons","nextReadyAction":"run-release","nextBlockedAction":"fix-candidate-model"},"learnMoreReleaseStateGate":{"tool":"tools/vrm/verify_formal_learnmore_release_state.py","command":"python3 tools/vrm/verify_formal_learnmore_release_state.py --base-url https://ycspace.myvnc.com/mika-avatar --json-output reports/mika-formal-learnmore-release-state.json","jsonOutput":"reports/mika-formal-learnmore-release-state.json","readyField":"ready","blockingField":"blockingReasons","expectedReportFields":["ready","blockingReasons","blockingReasonCount","deliveryPreflightDiffs","deliveryPreflightDiffCount","releasePlanSummaryDiffs","releasePlanSummaryDiffCount","formalMikaCandidateScanShapeErrors","formalMikaCandidateScanShapeErrorCount","idDiffs","idDiffCount","unexpectedLegacyIntegrationFields","unexpectedLegacyIntegrationFieldCount"],"expectedReportFieldCount":13,"expectedPreferredVrmAvatarId":"mika_formal_vrm","expectedLegacyAvatarRemoved":true,"expectedIntegrationUrls":{"formalMikaStatusUrl":"/mika-avatar/api/vrm/formal/status","formalMikaReadinessUrl":"/mika-avatar/api/vrm/formal/status","formalMikaHandoffApiUrl":"/mika-avatar/api/handoff/mika-formal-vrm","formalMikaHandoffPackageUrl":"/mika-avatar/handoff/mika-formal-vrm-handoff.zip","formalMikaHandoffPageUrl":"/mika-avatar/handoff/mika-formal-vrm","formalMikaDeliveryTemplateUrl":"/mika-avatar/handoff/mika-formal-vrm-delivery-template.zip","formalMikaProductionSpecJsonUrl":"/mika-avatar/handoff/mika-formal-vrm/production-spec.json","formalMikaProductionSpecMarkdownUrl":"/mika-avatar/handoff/mika-formal-vrm/production-spec.md","formalMikaBlenderWorkspacePreviewUrl":"/mika-avatar/api/vrm/formal/blender-workspace-preview","formalMikaBlenderWorkspacePreviewImageUrl":"/mika-avatar/handoff/mika-formal-vrm/blender-workspace-preview.png","formalMikaMaterialRebuildUrl":"/mika-avatar/api/vrm/formal/material-rebuild","formalMikaMaterialApplicationUrl":"/mika-avatar/api/vrm/formal/material-application","formalMikaExpressionShapeKeysUrl":"/mika-avatar/api/vrm/formal/expression-shape-keys","formalMikaSkinWeightsUrl":"/mika-avatar/api/vrm/formal/skin-weights","formalMikaSpringBonePlanUrl":"/mika-avatar/api/vrm/formal/spring-bone-plan","formalMikaDraftExportUrl":"/mika-avatar/api/vrm/formal/draft-export","formalMikaDraftReleaseCandidateUrl":"/mika-avatar/api/vrm/formal/draft-release-candidate","formalMikaExternalAssetsUrl":"/mika-avatar/api/vrm/formal/external-assets","formalMikaVisualQualityUrl":"/mika-avatar/api/vrm/formal/visual-quality"},"expectedFormalIntegrationState":{"formalMikaPromotionReady":true,"formalMikaCanReplaceLegacy":true,"formalMikaReplacementBlocked":false,"formalMikaBlockingReasons":[]},"expectedFormalMikaDeliveryPreflight":{"tool":"tools/vrm/check_formal_vrm_delivery_readiness.py","candidateScanApiUrl":"/mika-avatar/api/vrm/formal/candidates","command":"python3 tools/vrm/check_formal_vrm_delivery_readiness.py /path/to/mika-formal-delivery --json-output reports/mika-formal-vrm-delivery-preflight.json","jsonOutput":"reports/mika-formal-vrm-delivery-preflight.json","readyField":"ready","blockingField":"blockingReasons","statusField":"deliveryValidation.filePlanStatus","deliveryValidationField":"deliveryValidation","selectedDeliveryDirField":"selectedDeliveryDir","modelScanRootsField":"modelScanRoots","modelArtifactsField":"modelArtifacts","modelArtifactCountField":"modelArtifactCount","scanDirOption":"--scan-dir /path/to/model-output","nextReadyAction":"run-delivery-validation","nextBlockedAction":"fix-delivery-package"}},"dryRunCommand":"scripts/release_mika_formal_vrm.sh /path/to/mika-formal-delivery/mika-formal.vrm --delivery-dir /path/to/mika-formal-delivery --license-label \"自有模型\" --source-url https://example.com/mika-formal-proof --license-file /path/to/mika-formal-delivery/LICENSE.md --dry-run","dryRunResultContract":{"schemaVersion":1,"source":"tools/vrm/release_formal_vrm_model.py --dry-run stdout JSON","validationTool":"tools/vrm/validate_formal_vrm_dry_run_result.py","validationCommand":"python3 tools/vrm/validate_formal_vrm_dry_run_result.py reports/mika-formal-vrm-release-dry-run.json --json-output reports/mika-formal-vrm-release-dry-run-validation.json","jsonOutput":"reports/mika-formal-vrm-release-dry-run.json","validationJsonOutput":"reports/mika-formal-vrm-release-dry-run-validation.json","readyField":"ready","blockingField":"blockingReasons","requiredFields":["dryRun","releaseMode","enabledAvatarId","enabledModelUrl","enabledModelName","inspectionReportPath","promotionRequested","removeLegacyModelRequested","deliveryValidation","deliveryValidationJsonOutput","deliveryTraceability","promotion","verify","expectedLearnMoreState","learnMoreReleaseStateGate","postReleaseChecks","nextCommands"],"expectedValues":{"dryRun":true,"releaseMode":"dry-run","enabledAvatarId":"mika_formal_vrm","promotionRequested":true,"removeLegacyModelRequested":true,"deliveryValidation.readyForIntake":true,"deliveryTraceability.available":true,"deliveryTraceability.readyForIntake":true,"deliveryTraceability.filePlanTotalCount":10,"deliveryTraceability.filePlanReadyCount":10,"deliveryTraceability.filePlanMissingCount":0,"deliveryTraceability.filePlanBlockedCount":0,"deliveryTraceability.filePlanMissingIds":[],"deliveryTraceability.filePlanBlockedIds":[],"promotion.planned":true,"promotion.command":"python3 tools/vrm/promote_formal_vrm_model.py --remove-legacy-model","verify.planned":true,"expectedLearnMoreState.preferredVrmAvatarId":"mika_formal_vrm","expectedLearnMoreState.formalMikaPromoted":true,"expectedLearnMoreState.legacyAvatarRemoved":true,"learnMoreReleaseStateGate.expectedPreferredVrmAvatarId":"mika_formal_vrm","learnMoreReleaseStateGate.expectedLegacyAvatarRemoved":true,"learnMoreReleaseStateGate.expectedFormalIntegrationState.formalMikaPromotionReady":true,"learnMoreReleaseStateGate.expectedFormalIntegrationState.formalMikaCanReplaceLegacy":true,"learnMoreReleaseStateGate.expectedFormalIntegrationState.formalMikaReplacementBlocked":false,"learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaStatusUrl":"/mika-avatar/api/vrm/formal/status","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaReadinessUrl":"/mika-avatar/api/vrm/formal/status","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaHandoffApiUrl":"/mika-avatar/api/handoff/mika-formal-vrm","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaHandoffPackageUrl":"/mika-avatar/handoff/mika-formal-vrm-handoff.zip","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaHandoffPageUrl":"/mika-avatar/handoff/mika-formal-vrm","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaDeliveryTemplateUrl":"/mika-avatar/handoff/mika-formal-vrm-delivery-template.zip","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaProductionSpecJsonUrl":"/mika-avatar/handoff/mika-formal-vrm/production-spec.json","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaProductionSpecMarkdownUrl":"/mika-avatar/handoff/mika-formal-vrm/production-spec.md","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaBlenderWorkspacePreviewUrl":"/mika-avatar/api/vrm/formal/blender-workspace-preview","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaBlenderWorkspacePreviewImageUrl":"/mika-avatar/handoff/mika-formal-vrm/blender-workspace-preview.png","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaMaterialRebuildUrl":"/mika-avatar/api/vrm/formal/material-rebuild","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaMaterialApplicationUrl":"/mika-avatar/api/vrm/formal/material-application","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaExpressionShapeKeysUrl":"/mika-avatar/api/vrm/formal/expression-shape-keys","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaSkinWeightsUrl":"/mika-avatar/api/vrm/formal/skin-weights","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaSpringBonePlanUrl":"/mika-avatar/api/vrm/formal/spring-bone-plan","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaDraftExportUrl":"/mika-avatar/api/vrm/formal/draft-export","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaDraftReleaseCandidateUrl":"/mika-avatar/api/vrm/formal/draft-release-candidate","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaExternalAssetsUrl":"/mika-avatar/api/vrm/formal/external-assets","learnMoreReleaseStateGate.expectedIntegrationUrls.formalMikaVisualQualityUrl":"/mika-avatar/api/vrm/formal/visual-quality","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.tool":"tools/vrm/check_formal_vrm_delivery_readiness.py","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.candidateScanApiUrl":"/mika-avatar/api/vrm/formal/candidates","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.command":"python3 tools/vrm/check_formal_vrm_delivery_readiness.py /path/to/mika-formal-delivery --json-output reports/mika-formal-vrm-delivery-preflight.json","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.jsonOutput":"reports/mika-formal-vrm-delivery-preflight.json","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.readyField":"ready","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.blockingField":"blockingReasons","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.statusField":"deliveryValidation.filePlanStatus","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.deliveryValidationField":"deliveryValidation","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.selectedDeliveryDirField":"selectedDeliveryDir","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.modelScanRootsField":"modelScanRoots","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.modelArtifactsField":"modelArtifacts","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.modelArtifactCountField":"modelArtifactCount","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.scanDirOption":"--scan-dir /path/to/model-output","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.nextReadyAction":"run-delivery-validation","learnMoreReleaseStateGate.expectedFormalMikaDeliveryPreflight.nextBlockedAction":"fix-delivery-package"},"blockingFieldPaths":["deliveryValidation.blockingReasons","deliveryValidation.filePlanStatus","learnMoreReleaseStateGate.blockingField"],"postDryRunCommands":["python3 tools/vrm/validate_formal_vrm_dry_run_result.py reports/mika-formal-vrm-release-dry-run.json --json-output reports/mika-formal-vrm-release-dry-run-validation.json","python3 tools/vrm/validate_formal_vrm_release_reports.py --delivery-preflight-json reports/mika-formal-vrm-delivery-preflight.json --json-output reports/mika-formal-vrm-release-reports-validation.json","scripts/release_mika_formal_vrm.sh /path/to/mika-formal-delivery/mika-formal.vrm --delivery-dir /path/to/mika-formal-delivery --license-label \"自有模型\" --source-url https://example.com/mika-formal-proof --license-file /path/to/mika-formal-delivery/LICENSE.md","bash scripts/verify_mika_avatar_core.sh","MIKA_AVATAR_VERIFY_LEARNMORE=1 bash scripts/deploy_mika_avatar_core.sh","python3 tools/vrm/verify_formal_learnmore_release_state.py --base-url https://ycspace.myvnc.com/mika-avatar --json-output reports/mika-formal-learnmore-release-state.json","python3 tools/vrm/validate_formal_vrm_release_reports.py --delivery-preflight-json reports/mika-formal-vrm-delivery-preflight.json --learnmore-json reports/mika-formal-learnmore-release-state.json --json-output reports/mika-formal-vrm-release-reports-validation.json"]},"releaseCommand":"scripts/release_mika_formal_vrm.sh /path/to/mika-formal-delivery/mika-formal.vrm --delivery-dir /path/to/mika-formal-delivery --license-label \"自有模型\" --source-url https://example.com/mika-formal-proof --license-file /path/to/mika-formal-delivery/LICENSE.md","reportArtifacts":[{"id":"deliveryPreflight","path":"reports/mika-formal-vrm-delivery-preflight.json","producer":"tools/vrm/check_formal_vrm_delivery_readiness.py","readyField":"ready","blockingField":"blockingReasons","requiredBefore":"delivery-validation"},{"id":"deliveryValidation","path":"reports/mika-formal-vrm-delivery.json","producer":"tools/vrm/validate_formal_vrm_delivery.py","readyField":"readyForIntake","blockingField":"blockingReasons","requiredBefore":"candidate-intake"},{"id":"candidateIntake","path":"reports/mika-formal-vrm-intake.json","producer":"tools/vrm/intake_formal_vrm_candidate.py","readyField":"intakeReady","blockingField":"blockingReasons","requiredBefore":"release-dry-run"},{"id":"releaseDryRun","path":"reports/mika-formal-vrm-release-dry-run.json","producer":"tools/vrm/release_formal_vrm_model.py","readyField":"dryRun","blockingField":"deliveryValidation.blockingReasons","requiredBefore":"dry-run-validation"},{"id":"releaseDryRunValidation","path":"reports/mika-formal-vrm-release-dry-run-validation.json","producer":"tools/vrm/validate_formal_vrm_dry_run_result.py","readyField":"ready","blockingField":"blockingReasons","requiredBefore":"release-reports-validation"},{"id":"releaseReportsValidation","path":"reports/mika-formal-vrm-release-reports-validation.json","producer":"tools/vrm/validate_formal_vrm_release_reports.py","readyField":"ready","blockingField":"blockingReasons","requiredBefore":"release"},{"id":"learnMoreReleaseState","path":"reports/mika-formal-learnmore-release-state.json","producer":"tools/vrm/verify_formal_learnmore_release_state.py","readyField":"ready","blockingField":"blockingReasons","requiredBefore":"done"}],"releaseChecklist":[{"id":"scaffoldDelivery","title":"建立正式交付資料夾","command":"python3 tools/vrm/scaffold_formal_vrm_delivery.py /path/to/mika-formal-delivery","successCondition":"交付資料夾結構建立完成，並補齊正式檔案","readyToRun":true,"requiredBefore":"deliveryPreflight"},{"id":"deliveryPreflight","title":"執行交付 preflight","command":"python3 tools/vrm/check_formal_vrm_delivery_readiness.py /path/to/mika-formal-delivery --json-output reports/mika-formal-vrm-delivery-preflight.json","reportArtifactId":"deliveryPreflight","successField":"ready","successValue":true,"blockingField":"blockingReasons","readyToRun":true,"requiredBefore":"deliveryValidation"},{"id":"deliveryValidation","title":"驗證正式交付資料夾","command":"python3 tools/vrm/validate_formal_vrm_delivery.py /path/to/mika-formal-delivery --json-output reports/mika-formal-vrm-delivery.json","reportArtifactId":"deliveryValidation","successField":"readyForIntake","successValue":true,"blockingField":"blockingReasons","readyToRun":true,"requiredBefore":"candidateIntake"},{"id":"candidateIntake","title":"檢查候選模型","command":"python3 tools/vrm/intake_formal_vrm_candidate.py /path/to/mika-formal.vrm --license-label \"自有模型\" --source-url https://example.com/mika-formal-proof --license-file docs/licenses/mika-formal-vrm.md --inspection-output reports/mika-formal-vrm-inspection.md --json-output reports/mika-formal-vrm-intake.json","reportArtifactId":"candidateIntake","successField":"intakeReady","successValue":true,"blockingField":"blockingReasons","readyToRun":true,"requiredBefore":"releaseDryRun"},{"id":"releaseDryRun","title":"執行正式 release 乾跑","command":"scripts/release_mika_formal_vrm.sh /path/to/mika-formal-delivery/mika-formal.vrm --delivery-dir /path/to/mika-formal-delivery --license-label \"自有模型\" --source-url https://example.com/mika-formal-proof --license-file /path/to/mika-formal-delivery/LICENSE.md --dry-run","reportArtifactId":"releaseDryRun","successField":"dryRun","successValue":true,"blockingField":"deliveryValidation.blockingReasons","readyToRun":true,"requiredBefore":"releaseDryRunValidation"},{"id":"releaseDryRunValidation","title":"驗證乾跑輸出契約","command":"python3 tools/vrm/validate_formal_vrm_dry_run_result.py reports/mika-formal-vrm-release-dry-run.json --json-output reports/mika-formal-vrm-release-dry-run-validation.json","reportArtifactId":"releaseDryRunValidation","successField":"ready","successValue":true,"blockingField":"blockingReasons","readyToRun":true,"requiredBefore":"releaseApply"},{"id":"releaseReportsValidation","title":"驗證 release 報告一致性","command":"python3 tools/vrm/validate_formal_vrm_release_reports.py --delivery-preflight-json reports/mika-formal-vrm-delivery-preflight.json --json-output reports/mika-formal-vrm-release-reports-validation.json","reportArtifactId":"releaseReportsValidation","successField":"ready","successValue":true,"blockingField":"blockingReasons","readyToRun":true,"requiredBefore":"releaseApply"},{"id":"releaseApply","title":"正式接入並提升 Mika","command":"scripts/release_mika_formal_vrm.sh /path/to/mika-formal-delivery/mika-formal.vrm --delivery-dir /path/to/mika-formal-delivery --license-label \"自有模型\" --source-url https://example.com/mika-formal-proof --license-file /path/to/mika-formal-delivery/LICENSE.md","successCondition":"mika_formal_vrm 成為主要 VRM，舊測試 VRM 不再出現在 catalog","readyToRun":false,"requiredBefore":"localVerify"},{"id":"localVerify","title":"執行本機總驗證","command":"bash scripts/verify_mika_avatar_core.sh","successCondition":"本機總驗證通過","readyToRun":false,"requiredBefore":"deployAndVerify"},{"id":"deployAndVerify","title":"部署並驗證線上服務","command":"MIKA_AVATAR_VERIFY_LEARNMORE=1 bash scripts/deploy_mika_avatar_core.sh","successCondition":"live smoke 與 LearnMore smoke 通過","readyToRun":false,"requiredBefore":"learnMoreReleaseState"},{"id":"learnMoreReleaseState","title":"確認 LearnMore 正式狀態","command":"python3 tools/vrm/verify_formal_learnmore_release_state.py --base-url https://ycspace.myvnc.com/mika-avatar --json-output reports/mika-formal-learnmore-release-state.json","reportArtifactId":"learnMoreReleaseState","successField":"ready","successValue":true,"blockingField":"blockingReasons","readyToRun":false,"requiredBefore":"postReleaseReportsValidation"},{"id":"postReleaseReportsValidation","title":"用 LearnMore 報告重驗 release 報告包","command":"python3 tools/vrm/validate_formal_vrm_release_reports.py --delivery-preflight-json reports/mika-formal-vrm-delivery-preflight.json --learnmore-json reports/mika-formal-learnmore-release-state.json --json-output reports/mika-formal-vrm-release-reports-validation.json","reportArtifactId":"releaseReportsValidation","successField":"ready","successValue":true,"blockingField":"blockingReasons","readyToRun":false,"requiredBefore":"done"}],"expectedLearnMoreState":{"preferredVrmAvatarId":"mika_formal_vrm","formalMikaPromoted":true,"legacyAvatarRemoved":true},"postReleaseChecks":["bash scripts/verify_mika_avatar_core.sh","MIKA_AVATAR_VERIFY_LEARNMORE=1 bash scripts/deploy_mika_avatar_core.sh","python3 tools/vrm/verify_formal_learnmore_release_state.py --base-url https://ycspace.myvnc.com/mika-avatar --json-output reports/mika-formal-learnmore-release-state.json","python3 tools/vrm/validate_formal_vrm_release_reports.py --delivery-preflight-json reports/mika-formal-vrm-delivery-preflight.json --learnmore-json reports/mika-formal-learnmore-release-state.json --json-output reports/mika-formal-vrm-release-reports-validation.json"]},"conceptImages":["docs/concepts/mika-formal-vrm-concept-20260610.png","docs/concepts/mika-formal-vrm-turnaround-20260610.png","docs/concepts/mika-formal-vrm-expressions-20260610.png","docs/concepts/mika-formal-vrm-outfit-details-20260610.png","docs/concepts/mika-formal-vrm-pose-reference-20260610.png"],"referenceImages":[{"label":"美術概念圖","filename":"mika-formal-vrm-concept-20260610.png","sourcePath":"docs/concepts/mika-formal-vrm-concept-20260610.png","url":"/mika-avatar/handoff/mika-formal-vrm/reference/mika-formal-vrm-concept-20260610.png","bytes":2385143,"sha256":"ea891b9c52305364d8f798a27e48c53e6588fadbf628d40cb3631695a17e2269","width":1024,"height":1536},{"label":"建模三視圖","filename":"mika-formal-vrm-turnaround-20260610.png","sourcePath":"docs/concepts/mika-formal-vrm-turnaround-20260610.png","url":"/mika-avatar/handoff/mika-formal-vrm/reference/mika-formal-vrm-turnaround-20260610.png","bytes":1634333,"sha256":"eb4f00102c8e242785f122dd23844958219f72b5a8037a1950db73702dc674bf","width":1536,"height":1024},{"label":"表情與嘴型圖","filename":"mika-formal-vrm-expressions-20260610.png","sourcePath":"docs/concepts/mika-formal-vrm-expressions-20260610.png","url":"/mika-avatar/handoff/mika-formal-vrm/reference/mika-formal-vrm-expressions-20260610.png","bytes":2525520,"sha256":"1ee3ffa7bf3209e7c96fd1e171150e849fbed173f257bac7d086bcbb89f6aa09","width":1536,"height":1024},{"label":"服裝與材質細節圖","filename":"mika-formal-vrm-outfit-details-20260610.png","sourcePath":"docs/concepts/mika-formal-vrm-outfit-details-20260610.png","url":"/mika-avatar/handoff/mika-formal-vrm/reference/mika-formal-vrm-outfit-details-20260610.png","bytes":2340618,"sha256":"41c9ef4aa477d7bc14e60b4525b2980b95d4f3c7f89d096eecf1dcd25698e1a8","width":1536,"height":1024},{"label":"動作姿勢圖","filename":"mika-formal-vrm-pose-reference-20260610.png","sourcePath":"docs/concepts/mika-formal-vrm-pose-reference-20260610.png","url":"/mika-avatar/handoff/mika-formal-vrm/reference/mika-formal-vrm-pose-reference-20260610.png","bytes":1966323,"sha256":"a2c63ebe04fc7dc7e6d614a0e2e276e0c32156d744cd34e2287fb2a8409a73c4","width":1536,"height":1024}]}