New data contracts need auto-generated UUIDs, like what is done for data products, to support evolving name changes and scope.
In the following screenshot, I am creating a new data contract named 'my-test-data-contract':

In the next screenshot, I have saved the above data contract and re-entered the editor. The name of the contract is now in the URL.

The contract id is editable, so when I attempt to change it, I get an error when I 'save'.

The name, particularly a unique name, for a contract could change, so the above behavior is very bad. However, the system's handling of data products is different. The system doesn't allow the user to provide an ID.

In the next screenshot, I have saved the above data product and re-entered the editor. The Id of the product is now in the URL.

Interestingly enough, the system allows me to manually change the Id, despite the Id being a uuid. And when I do, it allows me to save. In general, I don't think that is a good thing, but auto generating a UUID rather than relying on me to provide it is a much better approach. This is only when the contract / product is created within Entropy Data. If the contract / product is imported from GitHub, maybe the ID will need to consumed.
New data contracts need auto-generated UUIDs, like what is done for data products, to support evolving name changes and scope.
In the following screenshot, I am creating a new data contract named 'my-test-data-contract':

In the next screenshot, I have saved the above data contract and re-entered the editor. The name of the contract is now in the URL.

The contract id is editable, so when I attempt to change it, I get an error when I 'save'.

The name, particularly a unique name, for a contract could change, so the above behavior is very bad. However, the system's handling of data products is different. The system doesn't allow the user to provide an ID.

In the next screenshot, I have saved the above data product and re-entered the editor. The Id of the product is now in the URL.

Interestingly enough, the system allows me to manually change the Id, despite the Id being a uuid. And when I do, it allows me to save. In general, I don't think that is a good thing, but auto generating a UUID rather than relying on me to provide it is a much better approach. This is only when the contract / product is created within Entropy Data. If the contract / product is imported from GitHub, maybe the ID will need to consumed.