Describe the enhancement requested
Manipulating field and schema metadata in the JS bindings currently requires manually constructing Map<string, string> instances and re-instantiating Field/Objects objects.
Other Arrow implementations:
expose a helper that replaces a field/schema’s metadata map (and accepts null/None to clear it).
Request
Add a Field.withMetadata(), and Schema.withMetadata() method that:
- Accepts a
Map<string, string>, a plain object Record<string, string>, or null (to clear metadata).
- Returns a new Field with the supplied metadata (replacement semantics, not merging).
This brings the JavaScript bindings in line with the existing C++/PyArrow/Rust APIs and makes metadata updates more ergonomic (and less error-prone).