{
    "title": "PointCloud Bitfield Filter",
    "type": "object",
    "$schema": "http://json-schema.org/draft-04/schema",
    "description": "Filters points based on the value of the specified bitfield attribute.",
    "properties": {
        "field": {
            "type": "string",
            "description": "The name of the field that is used for the filter."
        },
        "requiredClearBits": {
            "type": "array",
            "description": "List ALL bit numbers that must cleared (=0) for the point to be kept. bit 0 is LSB.",
            "items": {
                "type": "number"
            }
        },
        "requiredSetBits": {
            "type": "array",
            "description": " List ALL bit numbers that must set (=1) for the point to be kept. bit 0 is LSB.",
            "items": {
                "type": "number"
            }
        },
        "type": {
            "type": "string",
            "enum": [
                "pointCloudBitfieldFilter"
            ]
        }
    },
    "anyOf": [
        {
            "required": [
                "requiredClearBits"
            ]
        },
        {
            "required": [
                "requiredSetBits"
            ]
        }
    ],
    "required": [
        "field",
        "type"
    ],
    "additionalProperties": false,
    "esriDocumentation": {
        "examples": [
            {
                "title": "PointCloud Bitfield Filter",
                "description": "",
                "code": {
                    "filters": [
                        {
                            "type": "pointCloudBitfieldFilter",
                            "field": "USAGE",
                            "requiredClearBits": [
                                0
                            ],
                            "requiredSetBits": [
                                2,
                                3
                            ]
                        }
                    ]
                }
            }
        ]
    }
}