{
  "schemaVersion": 1,
  "avatarId": "mika_live2d",
  "runtime": "live2d",
  "compatibilityReferenceAvatarId": "mao_pro",
  "requiredContractFile": "RUNTIME_MODEL_CONTRACT.json",
  "requiredContractUrl": "/mika-avatar/handoff/mika-live2d/runtime-model-contract.json",
  "requiredContractSchemaUrl": "/mika-avatar/handoff/mika-live2d/runtime-model-contract.schema.json",
  "modelJson": "runtime/mika_live2d.model3.json",
  "versionRequiredValue": 3,
  "fileReferencesRoot": "FileReferences",
  "mocReferenceRequired": true,
  "textureReferenceRequired": true,
  "displayInfoReferenceRequired": true,
  "physicsReferenceRequired": true,
  "poseReferenceRequired": true,
  "expressionReferencesRequired": true,
  "motionReferencesRequired": true,
  "displayInfoRequiredParameters": [
    "ParamA",
    "ParamI",
    "ParamU",
    "ParamE",
    "ParamO",
    "ParamMouthDown",
    "ParamAngleX",
    "ParamAngleY",
    "ParamAngleZ",
    "ParamBodyAngleX",
    "ParamBodyAngleY",
    "ParamBodyAngleZ",
    "ParamAllX",
    "ParamAllY",
    "ParamAllRotate",
    "ParamBreath",
    "ParamLeftShoulderUp",
    "ParamRightShoulderUp",
    "ParamArmLA01",
    "ParamArmLA02",
    "ParamArmLA03",
    "ParamArmRA01",
    "ParamArmRA02",
    "ParamArmRA03",
    "ParamHandLA",
    "ParamHandRA",
    "ParamFingerL",
    "ParamFingerR",
    "ParamLegLA01",
    "ParamLegLA02",
    "ParamLegRA01",
    "ParamLegRA02",
    "ParamFootL",
    "ParamFootR",
    "ParamEyeLOpen",
    "ParamEyeROpen",
    "ParamEyeBallX",
    "ParamEyeBallY",
    "ParamEyeLSmile",
    "ParamEyeRSmile",
    "ParamCheek",
    "ParamBrowLY",
    "ParamBrowRY",
    "ParamHairFront",
    "ParamHairSideL",
    "ParamHairSideR",
    "ParamHairBack",
    "ParamHairBackL",
    "ParamHairBackR",
    "ParamoHairMesh",
    "ParamHairFrontFuwa",
    "ParamHairSideFuwa",
    "ParamHairBackFuwa",
    "ParamSkirtFront",
    "ParamSkirtSideL",
    "ParamSkirtSideR",
    "ParamSkirtFuwa",
    "ParamSleeveL",
    "ParamSleeveR"
  ],
  "expressionNameRequired": true,
  "motionGroupNameRequired": true,
  "motionGroupNonEmptyRequired": true,
  "expressionReferencesMustExist": true,
  "motionReferencesMustExist": true,
  "physicsPoseReferencesMustExist": true,
  "physicsPoseReferencesMustPassSchema": true,
  "referenceRule": "all FileReferences paths must resolve to non-empty files under runtime/ and pass type-specific validation",
  "textureReferenceFormatRule": "texture references must be valid PNG, JPEG, or WebP images with the required minimum texture dimensions",
  "displayInfoFileSchemaRule": "DisplayInfo must be a .cdi3.json file with Version=3 and Parameters entries for every required Mika mouth and motion parameter",
  "expressionNameRule": "each FileReferences.Expressions item must include a non-empty Name that is not a placeholder",
  "motionGroupRule": "each FileReferences.Motions group name must be non-empty and not a placeholder, and each group must contain at least one motion",
  "expressionFileSchemaRule": "expression files must be JSON objects with a non-empty Parameters array",
  "motionFileSchemaRule": "motion files must be JSON objects with Meta and a non-empty Curves array",
  "physicsFileSchemaRule": "declared physics files must be JSON objects with Version=3, Meta, and a non-empty PhysicsSettings array",
  "poseFileSchemaRule": "declared pose files must be JSON objects with Groups and valid part Id values"
}
