Temporal types
Contract-derived temporal scalars use native Arrow types:
String-like semantic scalars remain Arrow
Utf8 and carry optional field
metadata. Tables without a contract-derived override can use the Arrow schema
provided by their underlying table provider.
Semantic scalar metadata
When a field has a known semantic scalar, its Arrow metadata can include:
For example, columns carrying
Contact.Email can be joined across Providers
and to workspace.users.email when they represent the same person.
Treat these keys as optional. An omitted key means unknown or not computed; it
does not mean an empty value, false, or zero.
Table annotations
Table schemas can also describe logical identity and current annotations:
Field metadata can mark internal columns with
parable.annotation.hidden or
warn that a representation limits data skipping with
parable.annotation.poor_pruning.
Generic clients can ignore Parable metadata and still decode the Arrow schema.
Applications that use it should read the contract version and tolerate
additive keys.