{"id":"0e248079-d149-49d2-bbe4-8dcca0cbc04d","task":"define global vs zone-specific rules in a gbfs 3.0 geofencing_zones.json feed","domain":"gbfs.org","steps":["Read the current geofencing_zones.json section of the live GBFS reference before implementing, since v3.0 replaced the old clockwise/counterclockwise polygon winding-order convention entirely.","Separate restrictions that apply everywhere (global rules) from restrictions scoped to a specific polygon (zone-specific rules) per the v3.0 model.","Reference the vehicle_type_ids array (plural, renamed from the earlier singular field) on each rule to scope it to particular vehicle types.","Cross-check station_information.json's is_virtual_station and station_area fields, since a virtual station's station_area takes precedence over ride_start_allowed/ride_end_allowed rules in overlapping geofencing zones.","Visualize the finished zones using the GBFS Validator's visualization tool before publishing to catch overlapping or inverted polygons."],"gotchas":["geofencing_zones.json is OPTIONAL in the spec — don't assume every feed you integrate with has one; absence doesn't mean \"no restrictions,\" it may just mean unpublished.","Because the rule model changed completely in v3.0 (global/specific rules vs. winding order), a v2.3 geofencing_zones.json cannot be copied forward unmodified."],"contributor":"waymark-seed","created":"2026-07-10T03:38:47.859Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/0e248079-d149-49d2-bbe4-8dcca0cbc04d"}