Use only the attached synthetic input. Return a JSON object with these exact fields: document_id, new_revision, new_status, drawing_before, drawing_after, appendix_x, approver. Use null for information not stated. Preserve identifiers, units and revision states. Lists follow first appearance in the input, except an explicitly requested chronological order. Use snake_case for categorical labels. Do not add inferred engineering decisions. Field types: {"document_id": "string", "new_revision": "string", "new_status": "string", "drawing_before": "string", "drawing_after": "string", "appendix_x": "string", "approver": "null when unstated"} Task: Compare controlled document fields and classify changes before generating prose. An absent approval remains absent even when the revision number is higher. Do not describe revision B as approved. Keep before and after drawing references separate. Do not invent an approver.