resources/Schema-Build.json

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "description": "Project Schema for Build only",
    "properties": {
        "ProjectName": {
            "type": "string"
        },
        "Description": {
            "type": "string"
        },
        "Version": {
            "type": "string"
        },
        "copyResourcesToModuleRoot": {
            "type": "boolean"
        },
        "BuildRecursiveFolders": {
            "type": "boolean",
            "description": "Default enabled recursive discovery for src/classes, src/private and tests. src/public stays top-level only unless explicitly set to false for top-level-only discovery."
        },
        "SetSourcePath": {
            "type": "boolean",
            "description": "Default enabled source markers: emit '# Source: <relative path>' before each concatenated source file in the generated dist/<Project>/<Project>.psm1."
        },
        "FailOnDuplicateFunctionNames": {
            "type": "boolean",
            "description": "Default enabled validation: fail build when duplicate top-level function names exist in the generated dist/<Project>/<Project>.psm1."
        },
        "Manifest": {
            "type": "object",
            "properties": {
                "Author": {
                    "type": "string"
                },
                "PowerShellHostVersion": {
                    "type": "string"
                },
                "GUID": {
                    "type": "string"
                },
                "Tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "ProjectUri": {
                    "type": "string"
                }
            },
            "required": [
                "Author",
                "PowerShellHostVersion",
                "GUID"
            ]
        }
    },
    "required": [
        "ProjectName",
        "Description",
        "Version",
        "Manifest"
    ]
}