Files
MagnetismHeroes/SourceAssets/Models/Heroes/active-adoption.json
T

585 lines
26 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"schemaVersion": 1,
"status": "APPROVED_MODELS_ADOPTED_VERIFIED_PRODUCT_CANDIDATE",
"recordedKstDate": "2026-10-09",
"scope": "사용자 승인 바이트와 실제 Unity 채택을 연결한다. 제품 전체의 새 사용자 최종 승인은 별도이며 원본 후보 이력을 덮어쓰지 않는다.",
"approval": {
"path": "artifacts/verification/VisualUpgrade/ModelReview/user-approval.json",
"sha256": "b539d582aa77d032918bbb580d10d2374f65be4bdd6868432a84ed1d23a46bc5",
"userResponse": "승인합니다",
"confirmedUtc": "2026-10-08T14:05:56.585939+00:00",
"approvedFileCount": 25,
"reviewPacket": {
"path": "artifacts/verification/VisualUpgrade/ModelReview/review-packet.json",
"sha256": "4787e5679d1fe940060a889ffee42020258587ffb19eff32696ea6fc2f48cc99"
}
},
"approvedFiles": [
{
"kind": "BLENDER_SOURCE",
"repositoryRelativePath": "SourceAssets/Models/Heroes/MagneticKnight.blend",
"bytes": 1833499,
"sha256": "7ce1272dfe861aee986609cdb899f0edf8b8f2f0f17269c0eda472c8aa90ee3a"
},
{
"kind": "FBX",
"repositoryRelativePath": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Models/Heroes/HeroBody.fbx",
"bytes": 60076,
"sha256": "56f3301176c612ebeab3fdaaba5c019674beeb0f727f97ed27dd67e32ff50a40"
},
{
"kind": "FBX",
"repositoryRelativePath": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Models/Heroes/KnightEquipment.fbx",
"bytes": 222764,
"sha256": "a8059a020e79e080635e7326bb91576010cad10c60ee931d95536d47fe76e61c"
}
],
"historicalProvenance": {
"path": "SourceAssets/Models/Heroes/provenance.json",
"bytes": 6298,
"sha256": "16d9e14f9e3ee66dce4b16737e1b1e3380fb0ffff35e322d24508cef42d52851"
},
"authoringTool": {
"name": "Blender",
"version": "5.2.2 LTS",
"script": {
"path": "tools/models/build_hero.py",
"bytes": 22664,
"sha256": "6ac494c6207f2a49804db2b06691519920e28fd1af06224793b341854d63e638"
},
"frozenToolRecord": {
"name": "Blender",
"actualVersion": "5.2.2 LTS"
},
"toolBuildHash": null
},
"originalPlaygroundHistory": [
{
"path": "SourceAssets/Models/PlaygroundProps.blend",
"bytes": 301307,
"sha256": "59f543fc6d3b835fa282eac6459b9ed45ed2617052b7f1d2184895eb978b5775"
},
{
"path": "SourceAssets/Models/provenance.json",
"bytes": 3848,
"sha256": "4429c76007f59a6f3a2243204cae2b4ab0ab3d8d6fbf2cdaae9da01df50e9038"
}
],
"unity": {
"productSourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"applyScript": {
"path": "Assets/MagnetismHeroes/Editor/VisualUpgradeAssets.cs",
"bytes": 17527,
"sha256": "8996b23a4da448562c34bd681529414e87fcaa809fc62c563d135f8c61dc2569",
"guid": "40789cbe0397f8745bff78d14a544113",
"metaSha256": "f017c6e684dd15cd8d1a3682eea8ff6f1b0e4ab75f04087c092484cd19a97821"
},
"imports": [
{
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Models/Heroes/HeroBody.fbx",
"bytes": 60076,
"sha256": "56f3301176c612ebeab3fdaaba5c019674beeb0f727f97ed27dd67e32ff50a40",
"guid": "a1145d71b07ba34489a0290583fbe4ee",
"metaSha256": "808a80e2c555d64c82fc42d09809a3d93313b305e268e12a7fa524504c1e4d69",
"rootEuler": {
"x": 89.98021697998047,
"y": 0.0,
"z": 0.0
},
"meshCount": 1,
"triangleCount": 3968,
"globalScale": 1,
"bakeAxisConversion": true,
"rootRotationPreserved": true
},
{
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Models/Heroes/KnightEquipment.fbx",
"bytes": 222764,
"sha256": "a8059a020e79e080635e7326bb91576010cad10c60ee931d95536d47fe76e61c",
"guid": "ccc4dc45d61bc64499d7c0e1591e1b85",
"metaSha256": "f4a1b0bc232425b5e678d6d90e65f76510644d55c83fe9189fe7db0eaf46222f",
"rootEuler": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"meshCount": 22,
"triangleCount": 11684,
"globalScale": 1,
"bakeAxisConversion": true,
"rootRotationPreserved": true
}
],
"materials": [
{
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Materials/VisualUpgrade/Hero_CyanSatin.mat",
"bytes": 3919,
"sha256": "1c8727d6437de82f5842e1acda727f65196c4d92355857c168e62a68a37abbab",
"guid": "21b713eed8aa73146a39c8501b952ef9",
"metaSha256": "a171f8daa3b2b70fdb0141bf5c17f152c0468822411fbf87fde440eea2dd463c",
"sourceMaterial": "Hero_CyanSatin",
"shader": "Universal Render Pipeline/Lit",
"baseColorSrgb": [
0.17,
0.72,
0.83
],
"roughness": 0.48,
"smoothness": 0.52,
"metallic": 0,
"enableInstancing": true
},
{
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Materials/VisualUpgrade/Helmet_SilverTint.mat",
"bytes": 3919,
"sha256": "3aeca0f84d254552a3decf8004d4fbd6909fb26c75509069828605e1f3d9de39",
"guid": "6bc3d158d578da846bebebd6363bd204",
"metaSha256": "89a1606ce98219701647a35e393456945882a03011a45bfbc218b2be1e454c30",
"sourceMaterial": "Helmet_SilverTint",
"shader": "Universal Render Pipeline/Lit",
"baseColorSrgb": [
0.72,
0.85,
0.86
],
"roughness": 0.39,
"smoothness": 0.61,
"metallic": 0.18,
"enableInstancing": true
},
{
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Materials/VisualUpgrade/Ceramic_WarmCream.mat",
"bytes": 3922,
"sha256": "04f690db82d0cf505e4822f8f309c2905367b1fa83670f5422ab952f13b1a559",
"guid": "dad2eea71471abc488393ffb4dc0cc6f",
"metaSha256": "e871bbbbcedbf57be1ebe507c40b13739d3e2d82b249efad0afc0fe577199692",
"sourceMaterial": "Ceramic_WarmCream",
"shader": "Universal Render Pipeline/Lit",
"baseColorSrgb": [
0.97,
0.92,
0.78
],
"roughness": 0.43,
"smoothness": 0.5700000000000001,
"metallic": 0,
"enableInstancing": true
},
{
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Materials/VisualUpgrade/Trim_HoneyGold.mat",
"bytes": 3928,
"sha256": "d496af29ccbcfa9d3991818801535c68d21f549ff170978ef79627c21907f39f",
"guid": "50c03e94de1db4a4daf15b060866ac70",
"metaSha256": "102520158a20f5541cd883f1581fb1603f5ec2a0b080e454aa2b09a7bacc5658",
"sourceMaterial": "Trim_HoneyGold",
"shader": "Universal Render Pipeline/Lit",
"baseColorSrgb": [
0.94,
0.71,
0.34
],
"roughness": 0.42,
"smoothness": 0.5800000000000001,
"metallic": 0.12,
"enableInstancing": true
},
{
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Materials/VisualUpgrade/Enamel_DeepTeal.mat",
"bytes": 3939,
"sha256": "d6b422ffa5b6a4e688c8734070a4246967f950b73f7a504732c3a3d4bc863242",
"guid": "794c64e2850c3f541981a51bb4314d5e",
"metaSha256": "8ead210e4db06ee198df147bbcce864292e502a676d131d45c0089146029f7ef",
"sourceMaterial": "Enamel_DeepTeal",
"shader": "Universal Render Pipeline/Lit",
"baseColorSrgb": [
0.055,
0.4,
0.44
],
"roughness": 0.42,
"smoothness": 0.5800000000000001,
"metallic": 0,
"enableInstancing": true
},
{
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Materials/VisualUpgrade/Blade_SatinSilver.mat",
"bytes": 3918,
"sha256": "92c3fa6805b1c6405baf2fdfa113aa7689df1b73571cc9ed782bc6be4d54281b",
"guid": "59b7934cb6c96624abd461dad0a6a8f2",
"metaSha256": "440fb1197475cc9df36fafcd0c549cd5befb92b19ddbdb3de00e8baad268fc22",
"sourceMaterial": "Blade_SatinSilver",
"shader": "Universal Render Pipeline/Lit",
"baseColorSrgb": [
0.85,
0.92,
0.91
],
"roughness": 0.4,
"smoothness": 0.6,
"metallic": 0.2,
"enableInstancing": true
}
],
"prefabs": [
{
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Prefabs/MagnetFriend.prefab",
"bytes": 18184,
"sha256": "5e986e01ad9bcd2026e713b62601f92c7d8cfb9febf91d3591a833e38f7b4d46",
"guid": "91ae23d420859244686c2c654ab58bf3",
"metaSha256": "5e31161dac1026b55ff8b8c40fec85f1acdf7f154efb573036cda67c7e99139b"
},
{
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Prefabs/GroupBadge.prefab",
"bytes": 18371,
"sha256": "8804ed655c33dddff00f5b060e84ca67c9b91a65fbffb501fc83ada4e1594edc",
"guid": "f6475c2f7cafe4441a6f4706a3b2b6a4",
"metaSha256": "b76c78e7133454e8bf325948bcbc9f392c96c10fb4eb5a78b01eefac2109c8d7"
},
{
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Prefabs/GameApp.prefab",
"bytes": 406884,
"sha256": "a36a37bc84fe99dd8dc2c0bcf24ee5dfae266dd5da0c1a272caeb7bfbc7fc44c",
"guid": "73c3215bc432df740b907a1edefa9ea1",
"metaSha256": "248f9572123fca7ee45d9d56358e2e89a67c2a78b4c27cb74c4281170ace1db6"
}
],
"stages": [],
"sourceImportEvidence": {
"path": "artifacts/verification/VisualUpgrade/UnityApply/source-import.json",
"sha256": "4a8788aff69cd30befe5c20d94e63542ee9ad4a102710bfd7c208a8beb14f9a6"
},
"sourceImportEvidenceScope": "실제 초기 채택 import 기록이다. 현재 제품의 GUID·SHA는 별도로 위에 기록한다.",
"colorMapping": "원본 sRGB 값을 URP Lit BaseColor에 연결하고 linearBaseColor를 sRGB 입력으로 재사용하지 않는다. smoothness=1−roughness, metallic은 원본 값이다.",
"geometryBoundary": "원본 미터·Z-up 및 FBX -Z forward·Y-up, import scale 1·원래 import root 회전을 유지한다. 승인 메시·원본 재질 바이트를 변경하지 않는다."
},
"verification": {
"finalCompletion": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/completion.json",
"sha256": "587b92a7f4f63986bfa32af647bc184745b5b100deeed2b0ca4b7818ac309414"
},
"editorCaptureDirectory": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture",
"previousGameReview": {
"path": "artifacts/verification/VisualUpgrade/GameReview/visual-review.json",
"sha256": "c1d86277177ae32b891a1b4be4ecb637fe48ecb0785e292ee6a43835206ee6dc"
},
"previousGameReviewScope": "이전 통합 소스 b4d8854의 검수 이력이며 현재 최종 명령 결과를 대신하지 않는다.",
"limitations": "지면 아래 시점의 넓어진 지면 가림은 docs/tracking/findings.md에 기록한다. Editor 비율 캡처·CPU 시간·상주 자원은 Android 실기기 성능이 아니다.",
"representativeEditorCaptures": [
{
"metadata": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world1-soft-shadow.json",
"sha256": "3b09516098a73d3fb76c7992feaf0123b206472458dacb718f4f21aeef58a1e0"
},
"image": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world1-soft-shadow.png",
"sha256": "3cbe3c75bc6e864a2abf4a4275ca2aafb6f8ad61db8a09a4b7568053ea2e3902"
},
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"utc": "2026-10-08T15:25:03.7926755Z",
"width": 1280,
"height": 720,
"balls": 1,
"groups": 1,
"equipmentAssemblies": 1,
"boardOrigin": "Actual Main daylight with soft shadows",
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
},
{
"metadata": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-soft-shadow.json",
"sha256": "43ec85a330d87af485051023ccb75752e1699ac7a9f02da3968577217c6957b3"
},
"image": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-soft-shadow.png",
"sha256": "6c1433aa7ddb80f7f08f6477e6254023a8b57ce18168b7a018a65f815fcb722c"
},
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"utc": "2026-10-08T15:25:04.0908702Z",
"width": 1280,
"height": 720,
"balls": 3,
"groups": 1,
"equipmentAssemblies": 1,
"boardOrigin": "Actual Main daylight with soft shadows",
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
},
{
"metadata": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world21-soft-shadow.json",
"sha256": "b3f0c277da8218d26854e42f92b64a8d4a82cf5329992cea4c8adf8da470deb1"
},
"image": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world21-soft-shadow.png",
"sha256": "a3688b2458fd8551f9b847a78b4f348e70dd7296d85be2437805aee6b8c1314d"
},
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"utc": "2026-10-08T15:25:04.1905928Z",
"width": 1280,
"height": 720,
"balls": 6,
"groups": 2,
"equipmentAssemblies": 2,
"boardOrigin": "Actual Main daylight with soft shadows",
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
},
{
"metadata": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-two-plus-three-phone-default.json",
"sha256": "dfdbae399d6dc0671edca533807342cea44ed20d227cc74332eba133e6ca1355"
},
"image": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-two-plus-three-phone-default.png",
"sha256": "610a1fd1a25f03a50757a17c7f6f01d463a8b430971aa3d882c2d88fe213ba22"
},
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"utc": "2026-10-08T15:25:05.8152052Z",
"width": 2400,
"height": 1080,
"balls": 5,
"groups": 2,
"equipmentAssemblies": 2,
"boardOrigin": "Validated five-ball 2+3 free-play store fixture; actual Main app/session",
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
},
{
"metadata": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-merged-five-phone-default.json",
"sha256": "cca93732bef1a2fb86622411295c4f2a638bd1ed2c96c2ef96ece26d1ee3e95b"
},
"image": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-merged-five-phone-default.png",
"sha256": "6c03e9c1d814cc88c28254e5357d98f3c50bde22f2e824da3475c43cf40a3c56"
},
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"utc": "2026-10-08T15:25:06.1027531Z",
"width": 2400,
"height": 1080,
"balls": 5,
"groups": 1,
"equipmentAssemblies": 1,
"boardOrigin": "Actual app/session 2+3 merge from labeled boundary fixture",
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
},
{
"metadata": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-disconnected-split-two-three-tablet-orbitzoom.json",
"sha256": "e27b260c70273f1ec68c43bc1aac16e666dc4c494253df0055703610dd908ecd"
},
"image": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world11-disconnected-split-two-three-tablet-orbitzoom.png",
"sha256": "dea0046052f1400a0fd1e2e870b4546d01859c9463178867084c9fe21cd4c173"
},
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"utc": "2026-10-08T15:25:06.5677124Z",
"width": 1600,
"height": 1000,
"balls": 5,
"groups": 2,
"equipmentAssemblies": 2,
"boardOrigin": "Actual app/session split of disconnected five-group endpoints",
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
},
{
"metadata": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world1-ten-single-groups-phone-default.json",
"sha256": "66521c24e42b09e02212409819e35ef30f9c01e39c7fc212722a9ad817413911"
},
"image": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world1-ten-single-groups-phone-default.png",
"sha256": "8f0a22475b6013c58ff5bd9addd285f3927eb94e48aa081f2046eb8c1e276c52"
},
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"utc": "2026-10-08T15:25:08.5003167Z",
"width": 2400,
"height": 1080,
"balls": 10,
"groups": 10,
"equipmentAssemblies": 10,
"boardOrigin": "Validated synthetic Core FreePlay render fixture; session UI remains underlying stage 1",
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
},
{
"metadata": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world1-ten-one-group-tablet-default.json",
"sha256": "54c6f106ead00b1ede9bebdf182b78cbeb66007c50b53583a9d0847c27fa3bf5"
},
"image": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/EditorCapture/world1-ten-one-group-tablet-default.png",
"sha256": "3959e9679a5418b96d2b63d1de0479c2b537934dd3e7c5e71357c9f343d8ea54"
},
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"utc": "2026-10-08T15:25:08.8364150Z",
"width": 1600,
"height": 1000,
"balls": 10,
"groups": 1,
"equipmentAssemblies": 1,
"boardOrigin": "Validated synthetic Core FreePlay render fixture; session UI remains underlying stage 1",
"scope": "실제 Main PlayMode 렌더링의 모의 viewport이다. Android 화면이 아니며 합성 상태는 정상 진행 증거가 아니다."
}
],
"modelRoundtripEvidence": {
"path": "artifacts/verification/VisualUpgrade/ModelReview/integration-verification.json",
"sha256": "9dbe2c85a83c5f5098669724a8e0e73e34bda137a5cbe40e08e8c459e0a810ca"
},
"finalEvidenceAudit": {
"path": "artifacts/verification/VisualUpgrade/FinalProduct/documentation-final-evidence-audit.json",
"sha256": "778be655b03b0e159dfdc981be368802b39e2c25cc34e54d24761cba0dd3701e"
},
"actualFinalResults": {
"productSourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"phaseExitCodes": {
"EditMode": 0,
"PlayMode": 0,
"AndroidBuild": 0,
"AndroidSmoke": 0
},
"editorTests": {
"EditMode": 103,
"PlayMode": 52
},
"androidChecks": 226,
"children": [
{
"suite": "Fresh30",
"checks": 151,
"exitCode": 0,
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"apkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
"scope": "Fresh 30-stage sequential actual touch progression, no save writes or completion fixtures; separate boundary suites are labelled separately"
},
{
"suite": "FinalBoundary",
"checks": 37,
"exitCode": 0,
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"apkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
"scope": "Separate native boundaries after real30 completion; deliberate corrupt-file tests labelled, no fabricated completion or board injection"
},
{
"suite": "RapidBoundary",
"checks": 39,
"exitCode": 0,
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"apkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
"scope": "Separate QA planar collected10 replay20 fixture; real30 source record preserved. Actual offline native11 taps and complete numeric PCM; not fresh progression evidence."
},
{
"suite": "ContentBoundary",
"checks": 69,
"exitCode": 0,
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"apkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
"scope": "별도 명시 경계 검사. 정상 30단계 진행 수에 합산하지 않는다."
}
],
"smokeStartedUtc": "2026-10-08T15:31:53.7694461Z",
"smokeFinishedUtc": "2026-10-08T15:47:20.6303343Z",
"androidReport": {
"path": "artifacts/verification/Final/android-final-evidence.json",
"sha256": "070b33c70925eabebf33c66dfd08daa902ddffaa6591e052c765d7884e22ba8b"
},
"freshAll30SuccessAndIdsChecked": true,
"freshSavePushCommandCount": 0,
"failedAttemptsPreserved": [
{
"phase": "AndroidSmoke",
"command": "pwsh -NoProfile -File tools/verify.ps1 -Phase AndroidSmoke -Milestone Final",
"startedUtc": "2026-10-08T15:26:38.5225191Z",
"finishedUtc": "2026-10-08T15:30:38.1167761Z",
"exitCode": 1,
"status": "failed",
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"sourceDirty": false,
"sourceDirtyEnd": null,
"outerLog": "artifacts/verification/VisualUpgrade/FinalProduct/FailedAndroidAttempt1/androidsmoke-outer.log",
"evidence": "artifacts/verification/VisualUpgrade/FinalProduct/FailedAndroidAttempt1/Final/androidsmoke-evidence.json",
"originalEvidencePath": "C:\\git\\MagnetismHeroes\\artifacts\\verification\\Final\\androidsmoke-evidence.json",
"originalOuterLogPath": "C:\\git\\MagnetismHeroes\\artifacts\\verification\\VisualUpgrade\\FinalProduct\\androidsmoke-outer.log"
}
]
},
"apkProvenance": {
"apk": {
"path": "artifacts/android/MagnetismHeroes.apk",
"sha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
"bytes": 57215937
},
"installedApk": {
"path": "artifacts/verification/Final/Fresh30/installed-base.apk",
"sha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea"
},
"actualClipCount": 44,
"voicePayload": {
"path": "artifacts/verification/Final/VoicePayload/apk-voice-payload.json",
"sha256": "e89d1987d515ab958cc411f299297ccbea9c1a4f4b62c7886d6d7bc17be2a620"
},
"notices": [
{
"name": "NotoSansCJK-OFL.txt",
"sha256": "88f117575237307bdd86a17ef15e21790fc9a662fe4dfb103ca1ca077f0d9982"
},
{
"name": "TTS-Apache-2.0.txt",
"sha256": "7137274bab133744763a3906ace2a13844c2b34635136fc6d4454c25bfd76eda"
},
{
"name": "TTS-model-card.txt",
"sha256": "2157466302fcaf8e4979d0505aa4b648ad32468aff98b3e964046db05e574f3c"
}
]
},
"actualAndroidAvdCaptures": [
{
"stage": 1,
"image": {
"path": "artifacts/verification/Final/Fresh30/stage-1-enter.png",
"sha256": "6eee00ef4b430cb0ad9c697ca24d5ac4fe8de3630f14488e74fe78c25c87a301"
},
"captureCommands": {
"path": "artifacts/verification/Final/Fresh30/stage-1-enter-commands.json",
"sha256": "465c74bd14cb7cef440efd1e9007adb5f0626b4824fdd780cf8c637a0d6c07f5"
},
"observedUtc": "2026-10-08T15:32:22.2063877Z",
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"installedApkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
"scope": "실제 Android API37 AVD 2400×1080 화면. 정상 30단계 실제 입력의 한 시점이며 모든 얼굴의 동시 가시성을 보장하지 않는다."
},
{
"stage": 11,
"image": {
"path": "artifacts/verification/Final/Fresh30/stage-10-next.png",
"sha256": "4e64e2ed5706d4571ac43fad55616a457caea934c596a12d437195b13903e905"
},
"captureCommands": {
"path": "artifacts/verification/Final/Fresh30/stage-10-next-commands.json",
"sha256": "b447368b273e8213a3644a1c4afb201597ba884c623d443190d18bbcfb686af5"
},
"observedUtc": "2026-10-08T15:34:51.7253665Z",
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"installedApkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
"scope": "실제 Android API37 AVD 2400×1080 화면. 정상 30단계 실제 입력의 한 시점이며 모든 얼굴의 동시 가시성을 보장하지 않는다."
},
{
"stage": 21,
"image": {
"path": "artifacts/verification/Final/Fresh30/stage-20-next.png",
"sha256": "030ca33f9f11da310c2ead3a78b61306eee195a162cec1b8f32c5fda009328ef"
},
"captureCommands": {
"path": "artifacts/verification/Final/Fresh30/stage-20-next-commands.json",
"sha256": "4d21313b8c846e97effc65c1bddc94de87c7ab454d94512b2b8f0e56f41b4255"
},
"observedUtc": "2026-10-08T15:39:44.5484050Z",
"sourceCommit": "83182e7f3e86926bf130817d401a331829401fac",
"installedApkSha256": "bee8e80e03c4205edebf616a18940d58654e9115fdc91ee0a80f47dea91559ea",
"scope": "실제 Android API37 AVD 2400×1080 화면. 정상 30단계 실제 입력의 한 시점이며 모든 얼굴의 동시 가시성을 보장하지 않는다."
}
],
"newFinalProductUserApproval": "별도 최종 사용자 승인 대기이며 모델 승인과 구분한다."
},
"preservation": "기존 13 FBX·원본·출처, 기존 GUID, 30 비시각 정의·초기 구 위치·ID·수량, 음성 44개·얼굴 6표정·폰트·UI·Mixer·Core·저장을 유지한다.",
"fileHashScope": "실제 최종 빌드 저장소 파일 바이트이며 Git 체크아웃의 줄바꿈 차이와 구분한다.",
"pathBase": "path와 repositoryRelativePath는 저장소 루트를 기준으로 한다. artifacts 경로는 검증 원문이며 제품 자산이 아니다."
}