Implement a basic prompt templating utility that fills placeholders and validates structured JSON output. Use {{name}} placeholders, a variables dictionary, a JSON response string, and a recursive schema supporting object, array, string, number, integer, boolean, and null. Implement render_and_validate(template, variables, response, schema) and return [rendered_prompt, parsed_json], or [None, None] for missing placeholders, invalid JSON, or schema violations.
def render_and_validate(template, variables, response, schema):