# Update Order Task Contract ## Required structure An update task must have schemaVersion: "erp-task-v1", operation: "update_order", a non-empty identifier, updatePlan.actions as an array, attachments as paths, and originalText. ## Action examples | Intent | Action target | Operation | Safety note | |---|---|---|---| | set a final TWN count | rooms.TWN | set | validate non-negative result | | change by a delta | rooms.TWN or a verified field | delta | read current ERP snapshot first | | add a remark | remark / xiadanbeizhu | append | preserve existing text | | import traveler list | travelerList | traveler_upsert | parser/import verifies row counts | | correct a traveler row | travelerList.row | traveler_upsert | target row must be identified; audit redacts PII | Price/pax update support remains optional and unverified unless the runtime reports a route-specific verified capability. ## Duplicate and verification rules The dispatcher fingerprints identifier plus canonical update actions, blocks a recent identical completed update, and requires a fresh ERP re-query after save. Do not use a broad overwrite to avoid the fingerprint.