{
  "schema_version": "civicdataforge.partner-property-mappings.v1",
  "boundary": "Proposed extension mappings derived from public product surfaces. They are not claims about private partner schemas and require partner confirmation.",
  "common_extension": {
    "object": "property.str_permit_evidence",
    "fields": {
      "partner_property_id": "partner_record_id",
      "submitted_address": "submitted_address",
      "evidence_state": "decision",
      "match_state": "match_status",
      "permit_identifiers": "permit_ids",
      "published_statuses": "published_statuses",
      "published_expiration_dates": "expiration_dates",
      "official_source_url": "source_url",
      "source_clock": "source_clock",
      "retrieval_clock": "retrieval_clock",
      "field_presence": "field_presence",
      "record_hashes": "record_fingerprints",
      "decision_receipt_hash": "decision_receipt_hash",
      "verification_note": "verification_note"
    }
  },
  "rabbu": {
    "value": "Adds source-linked permit evidence beneath an existing investment-analysis and AI property object.",
    "suggested_join": [
      "partner listing/property id when supplied",
      "normalized street address plus jurisdiction"
    ],
    "delivery": [
      "synchronous API extension",
      "batch benchmark report",
      "recurring evidence refresh"
    ],
    "prohibited_inference": "No evidence state is converted into investment suitability or legal eligibility."
  },
  "mashvisor": {
    "value": "Adds official permit evidence to an existing property and analytics API response without replacing its investment metrics.",
    "suggested_join": [
      "partner property id when supplied",
      "normalized street address plus jurisdiction"
    ],
    "delivery": [
      "nested API extension",
      "bulk JSON/CSV delivery",
      "licensed recurring evidence feed"
    ],
    "prohibited_inference": "No missing publisher match is represented as an illegal rental or universal absence."
  }
}
