{
    "mixins": {
        "map2": {
            "maxSeedHits": {
                "adapter": {
                    "prefix": "--max-seed-hits",
                    "separator": " ",
                    "order": 2
                },
                "minimum": -1,
                "type": "integer"
            },
            "$mixin": "#mixins/algoCommon"
        },
        "map3": {
            "$mixin": "#mixins/algoCommon",
            "fwdSearch": {
                "adapter": {
                    "prefix": "--fwd-search",
                    "order": 2
                },
                "type": "boolean"
            }
        },
        "map1": {
            "$mixin": "#mixins/algoCommon",
            "seedLength": {
                "adapter": {
                    "prefix": "--seed-length",
                    "separator": " ",
                    "order": 2
                },
                "minimum": -1,
                "type": "integer"
            }
        },
        "map4": {
            "$mixin": "#mixins/algoCommon",
            "seedStep": {
                "adapter": {
                    "prefix": "--seed-step",
                    "order": 2
                },
                "minimum": -1,
                "type": "integer"
            }
        },
        "global": {
            "reads": {
                "required": true,
                "type": "file"
            }
        },
        "algoCommon": {
            "maxSeqLen": {
                "adapter": {
                    "prefix": "--max-seq-length",
                    "separator": " ",
                    "order": 2
                },
                "type": "integer"
            },
            "minSeqLen": {
                "adapter": {
                    "prefix": "--min-seq-length",
                    "separator": " ",
                    "order": 2
                },
                "type": "integer"
            }
        }
    },
    "algos": {
        "map2": {
            "required": [
                "algo"
            ],
            "type": "object",
            "properties": {
                "$mixin": "#mixins/map2",
                "algo": {
                    "adapter": {
                        "order": 0
                    },
                    "enum": [
                        "map2"
                    ],
                    "type": "string"
                }
            }
        },
        "map3": {
            "required": [
                "algo"
            ],
            "type": "object",
            "properties": {
                "$mixin": "#mixins/map3",
                "algo": {
                    "adapter": {
                        "order": 0
                    },
                    "enum": [
                        "map3"
                    ],
                    "type": "string"
                }
            }
        },
        "map1": {
            "required": [
                "algo"
            ],
            "type": "object",
            "properties": {
                "$mixin": "#mixins/map1",
                "algo": {
                    "adapter": {
                        "order": 0
                    },
                    "enum": [
                        "map1"
                    ],
                    "type": "string"
                }
            }
        },
        "map4": {
            "required": [
                "algo"
            ],
            "type": "object",
            "properties": {
                "$mixin": "#mixins/map4",
                "algo": {
                    "adapter": {
                        "order": 0
                    },
                    "enum": [
                        "map4"
                    ],
                    "type": "string"
                }
            }
        }
    }
}
