{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Capacitor Assets Configuration Schema",
  "description": "Schema for validating capacitor-assets configuration files",
  "type": "object",
  "properties": {
    "icon": {
      "type": "object",
      "properties": {
        "source": { 
          "type": "string", 
          "pattern": "^resources/.*\\.(png|svg)$",
          "description": "Source icon file path relative to project root"
        },
        "android": {
          "type": "object",
          "properties": {
            "adaptive": {
              "type": "object",
              "properties": {
                "foreground": { 
                  "type": "string",
                  "pattern": "^resources/.*\\.(png|svg)$",
                  "description": "Foreground icon for Android adaptive icons"
                },
                "background": { 
                  "type": ["string", "object"],
                  "description": "Background color or image for adaptive icons"
                },
                "monochrome": { 
                  "type": "string",
                  "pattern": "^resources/.*\\.(png|svg)$",
                  "description": "Monochrome icon for Android 13+"
                }
              },
              "required": ["foreground", "background"]
            },
            "target": {
              "type": "string",
              "description": "Android target directory for generated icons"
            }
          }
        },
        "ios": {
          "type": "object",
          "properties": {
            "padding": {
              "type": "number",
              "minimum": 0,
              "maximum": 1,
              "description": "Padding ratio for iOS icons"
            },
            "target": {
              "type": "string",
              "description": "iOS target directory for generated icons"
            }
          }
        },
        "web": {
          "type": "object",
          "properties": {
            "target": {
              "type": "string",
              "description": "Web target directory for generated icons"
            }
          }
        }
      },
      "required": ["source"],
      "additionalProperties": false
    },
    "splash": {
      "type": "object",
      "properties": {
        "source": { 
          "type": "string",
          "pattern": "^resources/.*\\.(png|svg)$",
          "description": "Source splash screen file"
        },
        "darkSource": { 
          "type": "string",
          "pattern": "^resources/.*\\.(png|svg)$",
          "description": "Dark mode splash screen file"
        },
        "android": {
          "type": "object",
          "properties": {
            "scale": {
              "type": "string",
              "enum": ["cover", "contain", "fill"],
              "description": "Android splash screen scaling mode"
            },
            "target": {
              "type": "string",
              "description": "Android target directory for splash screens"
            }
          }
        },
        "ios": {
          "type": "object",
          "properties": {
            "useStoryBoard": {
              "type": "boolean",
              "description": "Use LaunchScreen storyboard instead of splash assets"
            },
            "target": {
              "type": "string",
              "description": "iOS target directory for splash screens"
            }
          }
        }
      },
      "required": ["source"],
      "additionalProperties": false
    }
  },
  "required": ["icon", "splash"],
  "additionalProperties": false
}
