def METHOD_NAME(entity, tax_benefit_system):
    if entity.is_person:
        return {
            "type": "object",
            "properties": {
                variable_name: get_variable_json_schema(variable)
                for variable_name, variable in tax_benefit_system.get_variables(
                    entity
                ).items()
            },
            "additionalProperties": False,
        }
    else:
        properties = {}
        properties.update(
            {
                role.plural or role.key: {"type": "array", "items": {"type": "string"}}
                for role in entity.roles
            }
        )
        properties.update(
            {
                variable_name: get_variable_json_schema(variable)
                for variable_name, variable in tax_benefit_system.get_variables(
                    entity
                ).items()
            }
        )
        return {
            "type": "object",
            "properties": properties,
            "additionalProperties": False,
        }