Perform a full CPM analysis for the following project.

PROJECT: Northbrook Solar Energy Park — 50MW PV Farm
Location: Lincolnshire, UK
Contract: EPC Lump Sum, £35M, NEC3 Option A
Duration target: 280 working days

ACTIVITIES:
ID | Name                                   | Duration (wd) | Predecessors
1  | Site Establishment & Mobilization      | 15            | —
2  | Site Investigation & Env Surveys       | 20            | 1SS
3  | Earthworks: Grading & Access Roads     | 40            | 2
4  | DC Cable Trenching                     | 35            | 3
5  | Piling & Mounting Structure Foundations| 45            | 3
6  | Mounting Structure Erection            | 60            | 5
7  | PV Module Installation                 | 55            | 6
8  | DC String Cabling & Terminations       | 45            | 7SS+10
9  | Inverter & MV Transformer Install      | 20            | 4
10 | MV AC Cabling                          | 30            | 9
11 | HV Substation Construction             | 50            | 3
12 | Grid Connection & DNO Interface Works  | 25            | 11
13 | SCADA & Monitoring System              | 15            | 9SS+15
14 | Commissioning & Pre-Energization Tests | 20            | 7,8,10,13
15 | Grid Energization & Acceptance Testing | 10            | 12,14
16 | Site Reinstatement & Landscaping       | 15            | 15SS
17 | O&M Training & Documentation           | 10            | 15
18 | Final Handover & Defects Punch List    | 5             | 16,17

For each activity calculate:
- ES (Earliest Start)
- EF (Earliest Finish)
- LS (Latest Start)
- LF (Latest Finish)
- TF (Total Float)
- Critical (true/false)

Identify the critical path. State total project duration in working days.
Confirm whether the schedule is inside the 280 working day contract target.
Output as a JSON object with an "activities" array and "project_duration_wd" and "critical_path" fields.
