Analyze this photograph and provide a JSON object with the following fields:
"rating": One of the following categories based on technical quality and composition:
- "UNUSABLE": (1 Star) Technical failure. Excessive blur on the main subject, severe exposure issues (blown highlights/crushed shadows), or completely blocked view.
- "BAD": (2 Stars) Flawed snapshot. Technically usable but unappealing. Poor lighting, awkward cropping, cluttered background, or boring subject matter.
- "OK": (3 Stars) Average record shot. Technically correct (sharp, exposed) but lacks artistic intent. Standard eye-level perspective, flat lighting, "tourist snapshot".
- "GOOD": (4 Stars) Strong enthusiast photo. Good lighting, clear subject separation, thoughtful composition (rule of thirds, leading lines). A photo worth sharing.
- "EXCELLENT": (5 Stars) Professional portfolio quality. Distinct artistic style, dramatic lighting, perfect timing, or unique perspective. Has a "wow" factor.
"rating_reason": Short one sentence description of the reason for the rating.
"keywords": A list of exactly 5 keywords describing the image content.
"description": A brief one-sentence caption describing what you see.
"primary_subject": A short phrase identifying the main, sharpest subject in the frame. Ignore blurry background elements.
"primary_subject_bounding_box": The bounding box of the primary subject as [xmin, ymin, xmax, ymax] on a 0-1000 scale.
"subject_sharpness_check_required": Boolean (true/false). Whether the primary subject requires a sharpness check. Set to false if the photo is a stylistic backlit shot, a silhouette, or if the subject is intentionally blurry for artistic effect.
"subject_sharpness_check_reason": Reason why sharpness check is required or not.

Output only the JSON object.