{"name":"Tour Floor Plans API","version":1,"persistence":{"mode":"validation_only","note":"POST validates editor drafts. Durable publishing will use the same contracts once a database adapter is connected."},"endpoints":[{"method":"GET","path":"/api/pipeline","description":"List every two-stage pipeline run and structure-only sample."},{"method":"GET","path":"/api/pipeline/:propertyKey","description":"Read both AI stage outputs and the final property dataset."},{"method":"GET","path":"/api/pipeline/:propertyKey/structure","description":"Read the LeaseMagnets AI structure-stage output."},{"method":"GET","path":"/api/pipeline/:propertyKey/enrichment","description":"Read the Tour AI enrichment-stage output."},{"method":"GET","path":"/api/properties","description":"List all Galman property pages, photos, and On-Site mappings."},{"method":"GET","path":"/api/properties/:slug","description":"Read one Galman source property record."},{"method":"GET","path":"/api/floorplans","description":"List available property datasets."},{"method":"GET","path":"/api/floorplans/:propertyKey","description":"Read one final enriched dataset."},{"method":"POST","path":"/api/floorplans/:propertyKey/validate","description":"Validate an edited final dataset."},{"method":"GET","path":"/api/floorplans/schema","description":"Read the expected JSON output shape."},{"method":"POST","path":"/api/floorplans/schema","description":"Validate an edited JSON output shape."},{"method":"GET","path":"/api/floorplans/config","description":"Read the two-stage AI pipeline configuration."},{"method":"POST","path":"/api/floorplans/config","description":"Validate an edited pipeline configuration."},{"method":"POST","path":"/api/events","description":"Collect Tour floor-plan interaction events."}]}