fix: Validate area position and don't allow update if already set