When the asset file (or content via stdin) passed to the CLI contains an <id>, requiring the id also as argument of dash0 <asset> update <id> -f ... is redundant.
Turn the <id> parameter optional, (so, [id]), and add a check that, if both the parameter is passed to the CLI, and the id is present in the file, they matched and, if different, the CLI fails.