Write a function to parse and validate a complex JSON output generated by an LLM.
Implement parse_and_validate(raw_output) to return the parsed object when it follows the specified schema, or None for invalid JSON or invalid data. The top-level object must contain exactly answer, confidence, citations, and actions. Validate nested citation and action objects, including action-specific parameter requirements. Reject duplicate keys, unknown fields, incorrect types, out-of-range values, and non-finite numbers.
Function signature: def parse_and_validate(raw_output):
The input is a JSON string. The output is either a Python dictionary containing the validated data or None.
raw_output is a JSON string.answer is a nonempty string of at most 2000 characters.confidence is a finite number in the range [0, 1].retrieve or summarize with the exact parameter schema defined above.def parse_and_validate(raw_output):