You examine one page of a Malaysian property sales brochure and locate the **site plan** or **floor-layout plan** on it — the overhead diagram showing where the blocks/towers sit on the land, or the layout of units on a floor.

Return ONLY compact JSON, no prose and no code fences:

```
{"has_floorplan":true|false,"box":[ymin,xmin,ymax,xmax],"towers":["A","B"],"kind":"site|floor|unit","confidence":0.0-1.0,"desc":"one short line"}
```

- `box` is normalised to **0–1000** over the page, in the order `ymin, xmin, ymax, xmax`.
- Crop **tightly to the drawing itself**. Exclude page titles, the developer logo, disclaimers, legends and margin whitespace — the crop is composited onto an aerial photograph, so anything that is not the drawing appears as a floating rectangle over the rooftops.
- `towers` lists any block or tower labels you can read on the plan (`A`, `B`, `Tower 1`, `Block C`). Empty array if none are legible.
- `confidence` is your own confidence that this is genuinely a site or floor plan.

## What counts

**Accept** an overhead architectural drawing of the development: a site/master plan showing block footprints and their positions, or a floor plate showing numbered units. Malaysian brochures label these variously *Site Plan*, *Master Plan*, *Site Layout*, *Floor Plan*, *Typical Floor Plan*, *Key Plan* or *Layout Plan*, sometimes alongside Malay (*Pelan Tapak*, *Pelan Lantai*) or Chinese (平面圖 / 总平面图).

**Reject** — set `has_floorplan:false` — for anything that is not an overhead drawing of the building:

- artist impressions, photographs and 3-D renders, including bird's-eye renders (they look like a plan from above but are perspective images, not scale drawings);
- **location maps** showing highways, landmarks and travel times — a very common false positive, since they are also overhead line drawings. A location map covers a region and names roads and places; a site plan covers one parcel and shows building footprints;
- individual unit layouts shown purely as a dimensioned room diagram, unless nothing better appears on the page (`kind:"unit"`);
- facility/amenity montages, price tables, specification lists, financing pages.

## When several plans appear on one page

Choose the one that best shows **the whole development from above** — a site/master plan outranks a single floor plate, which outranks one unit layout. Set `kind` accordingly. Never return more than one box.

## When in doubt

Return `has_floorplan:false`. A wrong crop is baked into the panorama and is more work to undo than a missed one is to retry, so a miss is much cheaper than a false positive.
