You are a data mapping assistant. Your task is to map the provided 'Raw Property Data Snippet' to the 'CanonicalRecord Schema Definition'.

RULES:
- Your entire response must be ONLY the mapped JSON object string, conforming strictly to the CanonicalRecord schema.
- Do NOT include any explanatory text before or after the JSON object.
- Set 'original_source_type' to: scrape
- Set 'original_source_identifier' to: https://www.zoopla.co.uk/for-sale/details/property-in-edinburg/987654
- Set 'entity_type' to 'RealEstateListing'.
- For the 'raw_source_data' field in the output, include the exact 'Raw Property Data Snippet' you were given.
- Perform necessary data transformations (e.g., string prices to numbers, parse dates, extract address components).
- If information for a canonical field is not present, use `null` or omit optional fields as per the schema.

CanonicalRecord Schema Definition:
{"title": "CanonicalRecord", "type": "object", "properties": {"canonical_record_id": {"type": "string", "description": "Unique identifier for this canonical record.", "examples": ["cre-SOME_UUID"]}, "original_source_identifier": {"type": "string", "description": "Identifier of the original source (e.g., URL, filename + row index)."}, "original_source_type": {"type": "string", "enum": ["api", "file", "scrape"], "description": "Type of the original source adapter ('api", "file", "scrape")."}, "entity_type": {"type": "string", "enum": ["RealEstateListing", "NewsArticle", "Other"], "default": "Other", "description": "Classification of the source entity."}, "mapping_model_version": {"type": ["string", "null"], "description": "Version identifier of the ML model used for mapping."}, "mapping_timestamp": {"type": "string", "format": "date-time", "description": "Timestamp (UTC) when the mapping was performed."}, "address": {"title": "Address", "type": ["object", "null"], "properties": {"street_address": {"type": ["string", "null"]}, "city": {"type": ["string", "null"]}, "state_province": {"type": ["string", "null"]}, "postal_code": {"type": ["string", "null"]}, "country": {"type": ["string", "null"], "default": "USA"}}}, "features": {"title": "Features", "type": ["object", "null"], "properties": {"bedrooms": {"type": ["integer", "null"]}, "bathrooms": {"type": ["number", "null"]}, "area_sqft": {"type": ["number", "null"], "description": "Area in square feet."}, "lot_size_sqft": {"type": ["number", "null"], "description": "Lot size in square feet."}, "year_built": {"type": ["integer", "null"]}, "property_type": {"type": ["string", "null"]}, "has_pool": {"type": ["boolean", "null"]}, "has_garage": {"type": ["boolean", "null"]}, "stories": {"type": ["integer", "null"]}}}, "listing": {"title": "Listing Information", "type": ["object", "null"], "properties": {"price": {"type": ["number", "null"]}, "currency": {"type": ["string", "null", "string"], "default": "USD"}, "listing_status": {"type": ["string", "null"]}, "listing_type": {"type": ["string", "null"]}, "listed_date": {"type": ["string", "null", "string"]}, "last_updated_date": {"type": ["string", "null", "string"], "format": "date-time"}, "listing_url": {"type": ["string", "null", "string"]}, "mls_id": {"type": ["string", "null"]}}}, "agent": {"title": "Agent Information", "type": ["object", "null"], "properties": {"name": {"type": ["string", "null"]}, "phone": {"type": ["string", "null"]}, "email": {"type": ["string", "null"]}, "brokerage_name": {"type": ["string", "null"]}}}, "description": {"type": ["string", "null"]}, "image_urls": {"type": ["array", "null"], "items": {"type": "string", "format": "uri"}}, "raw_source_data": {"type": ["object", "null"], "description": "Original source data record (JSON representation)."}}, "required": ["original_source_identifier", "original_source_type", "entity_type"]}

Original Source Type: scrape
Original Source Identifier: https://www.zoopla.co.uk/for-sale/details/property-in-edinburg/987654

Raw Property Data Snippet:
{"id": "987654", "location_text": "EH1, Edinburgh", "property_type": "Flat", "beds": "2", "baths": "1", "price": "Offers Over £250,000", "agent_details": {"branch_name": "Edinburgh Properties"}, "description": "Attractive 2-bedroom flat in the heart of the city.", "listing_url": "https://www.zoopla.co.uk/for-sale/details/property-in-edinburg/987654"}


You are a data mapping assistant. Your task is to map the provided 'Raw Property Data Snippet' to the 'CanonicalRecord Schema Definition'.

RULES:
- Your entire response must be ONLY the mapped JSON object string, conforming strictly to the CanonicalRecord schema.
- Do NOT include any explanatory text before or after the JSON object.
- Set 'original_source_type' to: api
- Set 'original_source_identifier' to: https://apiforrent.example.com/unit/U7E8W9
- Set 'entity_type' to 'RealEstateListing'.
- For the 'raw_source_data' field in the output, include the exact 'Raw Property Data Snippet' you were given.
- Perform necessary data transformations (e.g., string prices to numbers, parse dates, extract address components).
- If information for a canonical field is not present, use `null` or omit optional fields as per the schema.

CanonicalRecord Schema Definition:
{"title": "CanonicalRecord", "type": "object", "properties": {"canonical_record_id": {"type": "string", "description": "Unique identifier for this canonical record.", "examples": ["cre-SOME_UUID"]}, "original_source_identifier": {"type": "string", "description": "Identifier of the original source (e.g., URL, filename + row index)."}, "original_source_type": {"type": "string", "enum": ["api", "file", "scrape"], "description": "Type of the original source adapter ('api', 'file', 'scrape')."}, "entity_type": {"type": "string", "enum": ["RealEstateListing", "NewsArticle", "Other"], "default": "Other", "description": "Classification of the source entity."}, "mapping_model_version": {"type": ["string", "null"], "description": "Version identifier of the ML model used for mapping."}, "mapping_timestamp": {"type": "string", "format": "date-time", "description": "Timestamp (UTC) when the mapping was performed."}, "address": {"title": "Address", "type": ["object", "null"], "properties": {"street_address": {"type": ["string", "null"]}, "city": {"type": ["string", "null"]}, "state_province": {"type": ["string", "null"]}, "postal_code": {"type": ["string", "null"]}, "country": {"type": ["string", "null"], "default": "USA"}}}, "features": {"title": "Features", "type": ["object", "null"], "properties": {"bedrooms": {"type": ["integer", "null"]}, "bathrooms": {"type": ["number", "null"]}, "area_sqft": {"type": ["number", "null"], "description": "Area in square feet."}, "lot_size_sqft": {"type": ["number", "null"], "description": "Lot size in square feet."}, "year_built": {"type": ["integer", "null"]}, "property_type": {"type": ["string", "null"]}, "has_pool": {"type": ["boolean", "null"]}, "has_garage": {"type": ["boolean", "null"]}, "stories": {"type": ["integer", "null"]}}}, "listing": {"title": "Listing Information", "type": ["object", "null"], "properties": {"price": {"type": ["number", "null"]}, "currency": {"type": ["string", "null", "string"], "default": "USD"}, "listing_status": {"type": ["string", "null"]}, "listing_type": {"type": ["string", "null"]}, "listed_date": {"type": ["string", "null", "string"], "format": "date-time"}, "last_updated_date": {"type": ["string", "null", "string"]}, "listing_url": {"type": ["string", "null", "string"]}, "mls_id": {"type": ["string", "null"]}}}, "agent": {"title": "Agent Information", "type": ["object", "null"], "properties": {"name": {"type": ["string", "null"]}, "phone": {"type": ["string", "null"]}, "email": {"type": ["string", "null"]}, "brokerage_name": {"type": ["string", "null"]}}}, "description": {"type": ["string", "null"]}, "image_urls": {"type": ["array", "null"], "items": {"type": "string", "format": "uri"}}, "raw_source_data": {"type": ["object", "null"], "description": "Original source data record (JSON representation)."}}, "required": ["original_source_identifier", "original_source_type", "entity_type"]}

Original Source Type: api
Original Source Identifier: https://apiforrent.example.com/unit/U7E8W9

Raw Property Data Snippet:
{"unit_ref": "U7E8W9", "street": "200 Rental Ave", "city": "Seattle", "state": "WA", "zip": "98109", "beds": 2, "baths": 1, "area_sqft": 950, "rent": 2200, "available_on": "2024-05-01", "features": ["Dishwasher", "Hardwood Floors"], "contact_phone": "206-555-4321"}

Features: Dishwasher, Hardwood Floors.