{
    "$schema": "http://json-schema.org/schema",
    "title": "Validate No Direct API in Resolver Executor",
    "description": "Validates resolvers use services (not APIs) and components subscribe to service observables (not route.snapshot.data). Uses LINE-BASED detection for git diff filtering.",
    "type": "object",
    "properties": {
        "mode": {
            "type": "string",
            "enum": ["OFF", "MODIFIED_CODE", "NEW_AND_MODIFIED_METHODS", "MODIFIED_FILES"],
            "description": "OFF: skip validation. MODIFIED_CODE: only changed lines in diff. NEW_AND_MODIFIED_METHODS: violations in new/modified method/route scopes. MODIFIED_FILES: all in modified files.",
            "default": "OFF"
        },
        "disableAllowed": {
            "type": "boolean",
            "description": "Whether disable comments work. When false, no escape hatch.",
            "default": true
        },
        "ignoreModifiedUntilEpoch": {
            "type": "number",
            "description": "Epoch seconds. Until this time, skip validation entirely. When expired, normal mode resumes. Omit when not needed."
        },
        "enforcePaths": {
            "type": "array",
            "items": { "type": "string" },
            "description": "Array of directory prefixes (relative to workspace root) to scope validation to. When set, only files under these paths are checked. When empty/omitted, all changed files are checked."
        }
    },
    "required": []
}
